我的ckeditor版本是4.4.7
我想将默认目标更改为我添加到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";
}
});
});

我将此代码添加到ckeditor文件夹的link.js文件中并且它正常工作 但不正确
我的意思是,如果我复制从单词到编辑器的链接的文本,它不会自动将target_blank添加到href
但我必须点击“编辑链接”#39;在它上面,看到_blank上的默认目标
然后我点击确定然后保存然后它可以工作。
但我想让它自动设置target =" _blank"在我从单词复制的每个链接上。
任何人都可以帮忙吗?感谢。
答案 0 :(得分:2)
你把代码放在哪里了?
我改变了
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : 'notSet',
在_source\plugins\link\dialogs\link.js
到
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : '_blank',
这很好。
答案 1 :(得分:0)
我将此代码添加到ckeditor文件夹的link.js文件中,但它正常但不正确
如果您在link.js
文件中初始化编辑器并不,则直接在HTML页面上使用此代码:
var editor = CKEDITOR.replace( 'editor1', { });
CKEDITOR.on('dialogDefinition', function(ev) {
...
答案 2 :(得分:0)
在插件文件中进行编辑不是一个理想的解决方案。
最好的解决方案是将其添加到您的js文件中
CKEDITOR.on( 'dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
var dialogDefinition = ev.data.definition;
if ( dialogName == 'link' ) {
var targetTab = dialogDefinition.getContents( 'target' );
var targetField = targetTab.get( 'linkTargetType' );
targetField[ 'default' ] = '_blank';
}
});