ckeditor 默认目标 link="_blank" 无法正常工作
ckeditor default target link=" _blank" not work properly
我的ckeditor版本是4.4.7
我想将默认目标更改为我添加到 ckeditor 的每个 link 文本,我发现了这段代码
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 文件中,它正在运行
但不正确
我的意思是,如果我将带有 link 的文本从 word 复制到编辑器,它不会自动将 target_blank 添加到 href
但我必须点击 'edit link' 才能看到默认目标已经在 _blank
然后我点击确定并保存然后就可以了。
但我希望它在我从 word 复制的每个 link 上自动设置 target="_blank"。
有人可以帮忙吗?
谢谢。
你把代码放在哪里了?
我变了
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : 'notSet',
在_source\plugins\link\dialogs\link.js
到
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : '_blank',
这很好用。
I added this code to link.js file of ckeditor folder and it's working but not correctly
您直接在 HTML 页面上使用此代码是您初始化编辑器并且 不是 在 link.js
文件中:
var editor = CKEDITOR.replace( 'editor1', { });
CKEDITOR.on('dialogDefinition', function(ev) {
...
在插件文件内部编辑不是一个理想的解决方案。
最好的解决方案是将其添加到您的 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';
}
});
我的ckeditor版本是4.4.7
我想将默认目标更改为我添加到 ckeditor 的每个 link 文本,我发现了这段代码
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 文件中,它正在运行 但不正确
我的意思是,如果我将带有 link 的文本从 word 复制到编辑器,它不会自动将 target_blank 添加到 href
但我必须点击 'edit link' 才能看到默认目标已经在 _blank
然后我点击确定并保存然后就可以了。
但我希望它在我从 word 复制的每个 link 上自动设置 target="_blank"。
有人可以帮忙吗?
谢谢。
你把代码放在哪里了?
我变了
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : 'notSet',
在_source\plugins\link\dialogs\link.js
到
type : 'select',
id : 'linkTargetType',
label : commonLang.target,
'default' : '_blank',
这很好用。
I added this code to link.js file of ckeditor folder and it's working but not correctly
您直接在 HTML 页面上使用此代码是您初始化编辑器并且 不是 在 link.js
文件中:
var editor = CKEDITOR.replace( 'editor1', { });
CKEDITOR.on('dialogDefinition', function(ev) {
...
在插件文件内部编辑不是一个理想的解决方案。
最好的解决方案是将其添加到您的 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';
}
});