2012-11-11 70 views
5

Tôi muốn xóa tùy chọn cho hộp thoại "khác" trong ckeditor (liên kết -> giao thức).Cách xóa giao thức khỏi hộp thoại liên kết (ckeditor)

Điều này gây nhầm lẫn cho người dùng; họ không chỉ định một giao thức, sau đó liên kết tìm kiếm một tệp trên máy chủ của tôi (thay vì liên kết bên ngoài, gây nhầm lẫn cho người dùng).

Tôi đã cố gắng xóa tùy chọn "khác" khỏi link.js, nhưng điều đó không hoạt động (vẫn hiển thị). Nếu tôi xóa nó khỏi các tập tin ngôn ngữ, tôi nhận được "không xác định" thay vì khác. Tôi đã cố gắng tìm kiếm tất cả mọi thứ như "ckeditor loại bỏ giao thức liên kết" mà không có may mắn.

Có ai có thể giúp tôi với điều này không?

Trả lời

9

Tôi tìm thấy giải pháp - bằng cách thay đổi file config.js. (Tôi luôn luôn tìm kiếm giờ, cuối cùng quyết định hỏi SO, sau đó nhận được một ý tưởng mới và tìm ra giải pháp duy nhất một chút sau> <)

CKEDITOR.on('dialogDefinition', function(ev) 
{ 
    // Take the dialog name and its definition from the event data. 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 

    // Check if the definition is from the dialog we're 
    // interested in (the 'link' dialog). 
    if (dialogName == 'link') 
    { 
     dialogDefinition.getContents('info').get('protocol')['items'].splice(4, 1); 

Phần này có phần tài liệu tốt. Google tìm kiếm "loại bỏ các tùy chọn thả xuống" đã thành công hơn.

dialogDefinition.getContents() được tab

get('protocol') được mục đầu vào

['items'].splice(4, 1) được tài sản mục tương ứng của đối tượng trở lại ở trên, và loại bỏ các yếu tố cuối cùng trong danh sách (Tôi nghĩ rằng tôi có thể sử dụng cửa sổ pop nhưng bất cứ điều gì) . Vì vậy, có nolonger tùy chọn other.

+1

Xem : http://skvare.com/blog/remove-tabs-and-elements-from-ckeditor-dialog-window để có ví dụ tốt về tùy chỉnh hộp thoại liên kết. – ipd

3

Chúng tôi có vấn đề tương tự và chúng tôi cũng đã xóa tùy chọn khác khỏi danh sách thả xuống.

Sửa đổi các văn bản sau đây trong file link.js từ plugins \ folder thoại liên kết \

items:[['http://‎','http://'],['https://‎','https://'],['ftp://‎','ftp://'],['news://‎','news://'],[E.other,'']] 

với điều này

items:[['http://‎','http://'],['https://‎','https://'],['ftp://‎','ftp://'],['news://‎','news://']] 

và nó sẽ hoạt động tốt. Xem ảnh chụp màn hình dưới đây

enter image description here

+0

Strange, đó là nỗ lực đầu tiên của tôi và nó đã không làm việc. Tôi đã sửa nó theo một cách khác bên dưới, nhưng cảm ơn đề xuất [+1]! – Raekye

+1

Điều này không làm việc cho tôi cho đến khi tôi nhận ra rằng tệp đã được lưu vào bộ nhớ cache. Đối với những người sau khi tôi, hãy chắc chắn rằng bạn xóa bộ nhớ cache của bạn sau khi bạn thay đổi link.js ... CTRL + F5 đã không làm việc cho tôi, tôi đã phải rõ ràng trong thanh công cụ IE Dev – Pieter

+0

Cảm ơn nó đã làm việc cho tôi cũng :) –

2
CKEDITOR.on('dialogDefinition', function(ev) 
{ 
    // Take the dialog name and its definition from the event data. 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 

    // Check if the definition is from the dialog we're 
    // interested in (the 'link' dialog). 
    if (dialogName == 'link') 
    { 
    // Remove the 'Target' and 'Advanced' tabs from the 'Link' dialog. 
    dialogDefinition.removeContents('target'); 
    dialogDefinition.removeContents('advanced'); 

    // Get a reference to the 'Link Info' tab. 
    var infoTab = dialogDefinition.getContents('info'); 
     infoTab.remove('protocol'); 

    } 
}); 

Đặt mã trên trong config.js của plugin ckeditor

Các vấn đề liên quan