5

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

我有以下内容:

插件.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.  

})();

谁能帮我解决这个问题?

谢谢!

4

3 回答 3

8

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

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

然后在插件中:

CKEDITOR.plugins.add('myplugin',
{
    init: function (editor) {
        console.log(editor.config.customValues.name);
     }
}
于 2014-04-03T18:33:31.483 回答
2

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

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

和 :

  • console(localStorage.id);
  • 要获得 c 的值,它是:var id = JSON.parse(localStorage.id);
于 2013-11-12T23:10:46.900 回答
0

目前还没有开箱即用的方法,但您可以从 CKEditor 尝试此补丁,它可能有助于实现您的目标:

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

于 2014-02-18T09:13:09.780 回答