如何在ckeditor自定义插件中传递参数?

时间:2013-11-12 23:04:09

标签: javascript ckeditor fckeditor

我正在尝试将plugin.js脚本中的变量传递给我的customTag.js脚本。

我有以下内容:

plugin.js

//I want to pass id from my plugin.js to my customTag.js
CKEDITOR.plugins.add('customTag',
    {
      init : function(editor){
          var pluginName = 'customTag';
          var id = editor.config.id;
          CKEDITOR.dialog.add(pluginName, this.path + 'dialogs/customTag.js');
          editor.addCommand(pluginName, new CKEDITOR.dialogCommand(pluginName));
          editor.ui.addButton('customTag', { label : 'customTag', command : pluginName });
      }
    }
);

在我的customTag.js

( function(){

  codes...
  console(id) // gives me error.  

})();

任何人都可以帮我解决这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

由于CKEditor只是一个对象,你可以在编辑器的配置中定义自己的属性,并在插件中获取它,因为编辑器正在传递给init函数。

CKEDITOR.replace('mytextarea', {
    customValues: { name: 'myname' },
    extraPlugins: 'myplugin'
}

然后在插件中:

CKEDITOR.plugins.add('myplugin',
{
    init: function (editor) {
        console.log(editor.config.customValues.name);
     }
}

答案 1 :(得分:2)

您可以尝试通过localStorage传递它:

  • localStorage.id = JSON.stringify(id);

和:

  • console(localStorage.id);
  • 获取c的值:var id = JSON.parse(localStorage.id);

答案 2 :(得分:0)

目前没有办法开箱即用,但您可以尝试使用CKEditor中的补丁,这可能有助于实现您的目标:

http://dev.ckeditor.com/ticket/8749