2017-10-04 65 views
1

我CKEditor的版本是4.4.7CKEditor的默認目標鏈接=「_blank」不能正常工作

我想默認的目標更改爲文本的每一個環節,我添加到CKEDITOR,我發現這個代碼

CKEDITOR.on('dialogDefinition', function(ev) { 
 

 
    try { 
 

 
    var dialogName = ev.data.name; 
 
    var dialogDefinition = ev.data.definition; 
 

 
    if (dialogName == 'link') { 
 

 
     var informationTab = dialogDefinition.getContents('target'); 
 

 
     var targetField = informationTab.get('linkTargetType'); 
 

 
     targetField['default'] = '_blank'; 
 

 
    } 
 

 
    } catch (exception) { 
 

 
    alert('Error ' + ev.message); 
 

 
    } 
 

 
}); 
 

 
CKEDITOR.on('instanceReady', function(ev) { 
 
    var editor = ev.editor, 
 
    dataProcessor = editor.dataProcessor, 
 
    htmlFilter = dataProcessor && dataProcessor.htmlFilter; 
 
    htmlFilter.addRules({ 
 
    a: function(element) { 
 
     element.attributes['target'] = "_blank"; 
 
    } 
 
    }); 
 
});

我將此代碼添加到link.js CKEditor的文件夾中的文件,它的工作 但不能正確

我的意思是,如果我複製有從字編輯器鏈接的文本,它不添加target_blank到A HREF自動

,但我必須點擊它「編輯鏈接」和看到默認的目標已經在_blank

enter image description here

然後我點擊確定並保存,然後它工作。

但我希望它自動設置目標=「_空白」的每個鏈接,我從字複製。

任何人都可以提供幫助嗎?

謝謝。

+0

你使用的是哪個版本? –

+0

我的版本是4.4.7 – Patcharapan

回答

0

我將此代碼添加到link.js CKEditor的文件夾中的文件,它的工作,但不能正確

您可以使用此代碼直接HTML頁面中,你不是在link.js文件初始化編輯器和

var editor = CKEDITOR.replace('editor1', { }); 
CKEDITOR.on('dialogDefinition', function(ev) { 
... 
+0

我編輯'pastefromword'插件的default.js,所以我不必編輯我的網站的每一頁,但感謝您的建議! – Patcharapan

+0

您也可以將它添加到'config.js'(CKEDITOR.editorConfig = function(config){...};'下面),這樣您就不必每次更新編輯器都更新過濾器。 –

+0

很高興知道,謝謝你的提示:) – Patcharapan

0

你把你的代碼放在哪裏?

_source\plugins\link\dialogs\link.js改變

type : 'select', 
id : 'linkTargetType', 
label : commonLang.target, 
'default' : 'notSet', 

type : 'select', 
id : 'linkTargetType', 
label : commonLang.target, 
'default' : '_blank', 

,這工作得很好。

+0

我試過你的方法,但仍然有同樣的問題。它不會打開一個新窗口,除非點擊編輯器鏈接上的「編輯鏈接」。 – Patcharapan