Вопрос по tinymce, dynamic-loading, initialization, init – крошечный mce не может быть инициирован при динамической загрузке js

4

у меня проблемы с tinyMCE, когда я ставлю<script type="text/javascript" src="/scripts/tiny_mce/tiny_mce.js"> в<head>и поместите код инициализации перед<textarea class="tinyMceEditor">работает нормально. код инициализации выглядит так:

                    tinyMCE.init({
                        mode : "specific_textareas",
                        editor_selector : "tinyMceEditor",
                        plugins : "inlinepopups,advlink",
                        convert_urls : false,
                        theme : "advanced",
                        theme_advanced_buttons1 : "link,unlink",
                        width: "602",
                        height: "175",
                        theme_advanced_statusbar_location : "none"}); 

Но теперь я хочу отложить загрузку tiny_mce.js, когда пользователь нажимает кнопку в первый раз, то будет загружен tiny_mce.js, а затем добавляется<textarea class="tinyMceEditor"> в<body>затем выполните инициализацию с предыдущим кодом, но на этот раз он не будет инициализировать редактор tinyMCE, а только показывает<textarea class="tinyMceEditor">

погуглил, но не нашел ничего связанного с этим, кто-нибудь сталкивался с этой проблемой?

Любое предложение будет оценено.

Я посмотрел на инструменты веб-разработчика Chrome и обнаружил, что если я динамически загружаю tinymce.js, другие js, такие как en.js, editor_template.js, editor_plugin.js и т. д. не будут загружаться. даже когда я добавляю эти js-файлы для динамической загрузки, tinymce все еще не может быть инициирован.

спасибо за вашу помощь, я смотрел в firebug, и я загружаю tinymce.js перед добавлением<textarea в<body>тогда я добавляю<textarea>и сделай крошкуinit()Я использую LazyLoad (плагин jQuery) для динамической загрузки файлов JS.

вот что я сделал

if(typeof TinyMCE == "undefined"){
    //dynamically load the tinymce.js
    LazyLoad(['tinymce.js'],function(){
        //callback function, called after tinymce is loaded
        $('body').append('<textarea class="TinyMceEditor"/>');
        tinyMCE.init({init settings});
    });
}

если я не загружаю tinymce.js динамически, просто вставьте<script> отметить в<head>, tinyMCE может быть инициирован, но когда я загружаю tinymce.js динамически, он не работает. Есть идеи с этим?

да, и я нашел решение.<br>просто добавьwindow.tinymce.dom.Event.domLoaded=true доtinymce.init() и это просто работает. YuC
поэтому ваш onClick на кнопке загружает внешний JS, добавляет текстовую область в ваш документ, а затем запускает tinyMCE.init () в этом порядке? видетьstackoverflow.com/a/912713/830171 gingerCodeNinja

Ваш Ответ

1   ответ
28

наконец-то нашел решение, просто поставил

 window.tinymce.dom.Event.domLoaded = true;

до

 tinymce.init();

тогда тиним может быть введен правильно.

Здравствуйте, сэр, я пришел через 2 года в будущем. Спасибо! Ваш ответ только что спас меня. Jon Snow
Отличная находка! Кроме того, вам может потребоваться добавить корневой каталог js, например, перед вызовом init () - "tinymce.baseURL = '/ static / js / tinymce /';" Подробнее об этом:stackoverflow.com/questions/3636309/... Simon Steinberger
УХ ТЫ! Да, я смотрю на это уже пару дней. Что мы делали до дней SO? : o) Очень благодарен, спасибо! Ben Power
Я пытался найти решение в течение 2 дней ... Спасибо! deepakgates
У меня была проблема с инициализацией tinymce при щелчке внутри оболочки Require и Backbone, но только в Internet Explorer, даже ie10. Это решило это. Благодаря тонну. iabw

Похожие вопросы