ckeditor默认目标链接=" _blank"不能正常工作

时间:2017-10-04 06:08:52

标签: javascript jquery ckeditor

我的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上的默认目标

enter image description here

然后我点击确定然后保存然后它可以工作。

但我想让它自动设置target =" _blank"在我从单词复制的每个链接上。

任何人都可以帮忙吗?

感谢。

3 个答案:

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