TinyMce将textarea ID发送到link_list

时间:2017-05-15 11:55:23

标签: javascript tinymce tinymce-4 tinymce-plugins

我的页面上有多个textarea,我试图将$ lang变量发送到我的link_list文件,然后能够以正确的语言生成链接,

如何获取当前的textarea ID值并将此值发送到我的link_list文件?

我已尝试过: tinymce.editors.id ,但遗憾的是无法正常工作。

有人可以帮帮我吗?

非常感谢

<textarea id="fr" name="text_fr"></textarea>

<textarea id="en" name="text_en"></textarea>

和:

tinyMCE.init({

selector: "textarea",

link_list: "link_list.php?lang=" + tinymce.editors.id,

...

});

2 个答案:

答案 0 :(得分:0)

tinymce.editors数组在 之后 init()编辑器实例时才会填充,因此您无法依赖它来获取数据你需要做初始化。

对于每种语言,我都会有单独的inits,并且有一个基本配置,您只需使用link_list值进行更新,然后使用计算出的配置进行初始化。

您始终可以使用JavaScript在编辑器实例的基础上修改/扩展标准init。

例如,从标准配置开始:

baseConfig = {
  selector: 'textarea'
  //everything here except your language specific configuration
  ....
}

...因为这只是一个简单的JavaScript对象,所以在使用它来初始化TinyMCE之前,可以在该对象中注入其他属性/方法。

例如:

customConfigEn = {
  link_list: "link_list.php?lang=en"
}

customConfigFr = {
  link_list: "link_list.php?lang=fr"
}

然后你可以将customConfig“注入”到baseConfig中。最简单的方法是使用jQuery的extend方法:

$.extend(baseConfig, customConfigEn);

......或......

$.extend(baseConfig, customConfigFr);

...这将获取customConfig中的所有方法和属性,并将它们添加到baseConfig。完成后,您可以使用新更新的baseConfig加载TinyMCE:

tinymce.init(baseConfig);

这种通用技术允许您创建“标准”配置,其中包含所需的所有基本功能,同时逐页注入其他配置选项。

注意:您还可以选择在呈现HTML页面之前在服务器上创建这些配置,但是您没有提到您正在使用的服务器端语言,因此我无法说明如何从服务器端。

答案 1 :(得分:0)

Michael Fromin,非常感谢您的回答。

尝试过你的解决方案,但我不明白如何使用 使用我的英文textarea时的customConfigEn和使用我的french textarea时的customConfigFr。

这是我使用customConfigEn的代码:

baseConfig = {
 theme : "modern", 
 selector: "textarea",
 plugins: ["advlist autolink...
 ...
}

customConfigEn = {  
    editor_selector: "en",
    link_list: "link_list.php?lang=en",
}
customConfigFr = {  
    editor_selector: "fr",
    link_list: "link_list.php?lang=fr",
}


$.extend(baseConfig, customConfigEn);

tinyMCE.init(baseConfig);

再次感谢您的帮助,我非常感谢