FlyingCat
FlyingCat

Reputation: 14290

How to pass parameter in ckeditor custom plugin?

I am trying to pass a variable from my plugin.js script to my customTag.js script.

I have the following:

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

in my customTag.js

( function(){

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

})();

Can anyone help me about this issue?

Thanks!

Upvotes: 6

Views: 7038

Answers (3)

Xildatin
Xildatin

Reputation: 146

Since the CKEditor is just an object you could just define your own property in the config of the editor and grab it in the plugin since the editor is being passed to the init function.

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

and then in the plugin:

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

Upvotes: 10

CincauHangus
CincauHangus

Reputation: 441

There isn't a way to do that out of the box at the moment, but you can try this patch from CKEditor and it might help achieve your goal:

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

Upvotes: 0

Khalil Bhm
Khalil Bhm

Reputation: 398

You can try to pass it via the localStorage :

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

and :

  • console(localStorage.id);
  • to get the value ofc it's : var id = JSON.parse(localStorage.id);

Upvotes: 3

Related Questions