最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - ckeditor default target link=" _blank" not work properly - Stack Overflow

programmeradmin4浏览0评论

My ckeditor version is 4.4.7

I want to change the default target to every link of the text that I add to ckeditor and I found this code

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

My ckeditor version is 4.4.7

I want to change the default target to every link of the text that I add to ckeditor and I found this code

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

I added this code to link.js file of ckeditor folder and it's working but not correctly

I mean if I copy the text that have a link from word to editor,it doesn't add target_blank to a href automatically

but I have to click 'edit link' on it and see the default target already on _blank

then I click ok and save then it works.

but I want it to auto set target="_blank" on every link that I copy from word.

anyone can help?

thanks.

Share Improve this question edited Oct 4, 2017 at 6:15 PTN asked Oct 4, 2017 at 6:08 PTNPTN 4275 silver badges18 bronze badges 2
  • which version you are use ? – Ravi Chauhan Commented Oct 4, 2017 at 6:11
  • my version is 4.4.7 – PTN Commented Oct 4, 2017 at 6:14
Add a ment  | 

3 Answers 3

Reset to default 3

Editing inside plugin files is not an ideal solution.

The best solution would be to add this to your js file

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

Where did you put your code?

I changed

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

in _source\plugins\link\dialogs\link.js to

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

and this works fine.

I added this code to link.js file of ckeditor folder and it's working but not correctly

You use this code directly on HTML page were you initialize the editor and not in link.js file:

var editor = CKEDITOR.replace( 'editor1', { });
CKEDITOR.on('dialogDefinition', function(ev) {
...
发布评论

评论列表(0)

  1. 暂无评论