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';
      }
});