2

我正在构建一个在线编辑器,其中语言由用户设置设置,可以使用 AJAX 动态更改(页面不会重新加载),所以我第一次正确初始化 tinyMCE 对象,但在用户尝试再次初始化之后,编辑器控件中的文本具有不正确的值(“advanced.bold”而不是“Bold”,advanced.italic_desc 而不是“Italic”等),但插件弹出窗口的语言正确!

基本上,每次用户更改偏好中的语言时,我的代码都会执行 init 方法......

initMCE: function(lang) {
    tinyMCE.init({  
        language : lang,
        mode : "textareas",
        theme : "advanced",
        relative_urls : false,
        editor_selector : "tinymce",
        plugins : "emotions,spellchecker,advhr,insertdatetime,preview,media,inlinepopups,xhtmlxtras",

        // Theme options - button# indicated the row# only
        theme_advanced_buttons1 : "fontselect,fontsizeselect,bold,italic,underline,forecolor,|,bullist,numlist,|,blockquote,|,image,|,link,unlink,|,code,spellchecker",
        theme_advanced_buttons2 : "",
        theme_advanced_buttons3 : "",      
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "right",
        theme_advanced_resizing : true,

        content_css : "../_style/_css/style.css",
        inline_styles : false
    });
}

关于如何做或我做错了什么的任何想法?

4

3 回答 3

0

我创建了一个fiddle fork,试图使其工作,并认为您可能需要正确关闭以前的实例。语言没有正确改变——你可能想在这里报告一个错误修正。

于 2012-08-22T10:36:38.227 回答
0

我在他们的网站上将此报告为错误,他们告诉我在修复它时使用一种解决方法(似乎 load lang 调用只是在 init 内运行一次)。在 init 之后使用这一行,语言更改工作正常:

tinyMCE.ThemeManager.requireLangPack(THEME_IN_USE);

检查这个小提琴看看它工作

于 2012-08-23T08:54:45.543 回答
0

你可以使用这样的东西:

 function init(lang) {  
        //language_url: lang === 'en' ? null : 'url to es file',
        options.language = lang;
        tinymce.remove(editor);
        tinymce.init(options);
        tinymce.execCommand('mceRepaint');
      }

这个小提琴对我有用,注意第 31 行的注释:

https://jsfiddle.net/antd3tsf/19/

于 2017-04-27T17:26:52.117 回答