【问题标题】:Loading tinymce dynamically动态加载tinymce
【发布时间】:2012-03-05 09:50:45
【问题描述】:

当 tinymce 在 head 并且在 dom 之前加载时,一切正常。但是,如果我尝试使用 ajax(jquery.getScript()) 加载 javascript,它将无法正常工作。 当用户单击内容区域时,我正在初始化 tinymce,因此 dom 必须准备好。 我想让它在不改变tinymce代码而不是head标签的情况下工作,因为脚本大约65kb(gzipped)。我的代码如下所示:

window.tab_offers.show_edit = function() {
    if (init == true) {
        tinymce.execCommand('mceToggleEditor', false, 'offers-tab-content');
    } else {
        tinyMCE.init({
            mode : "exact",
            elements: "offers-tab-content",
            language : window.PAGE_LANG,
            theme : "advanced",
            content_css: site_url('css/parim/tinymce.css'),
            plugins : "autoresize",
            width: $('#offers-tab-content').width() + 18,
            theme_advanced_buttons1 : "cancelforecolor,backcolor,separator,bold,italic,underline,strikethrough,separator,bullist,numlist,separator,undo,redo,separator,hr,removeformat,separator,charmap,separator,link,unlink",
            theme_advanced_buttons2 : "",
            theme_advanced_buttons3 : ""
        });
    init = true;
    }
};

【问题讨论】:

  • 如果你根本没有设置插件和按钮会发生什么,它会初始化吗?你在哪里加载 tiny_mce.js?
  • 当我在 head(脚本标签)上加载 tiny_mce.js 时,一切正常,但是当我尝试使用 ajax(getScript())加载 tiny_mce.js 时,tinymce 什么也不加载。我想这可能与 dom 准备好了有关。我会尝试欺骗 tinymce,让他们知道 dom 在没有事件的情况下已经准备就绪。

标签: javascript ajax tinymce


【解决方案1】:

发现问题。 Tinymce 尝试从脚本标签中获取“baseURL”,但如果我动态加载它,则不匹配。它遍历页面上的每个脚本元素并像这样检查它:/tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(n.src)。所以我只是像这样覆盖了 baseURL 参数: tinyMCE.baseURL = "http://mysite.com/path_to_tinymce/"; tinyMCE.init({ ..., ... });

【讨论】:

    猜你喜欢
    • 2013-06-06
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多