3

ライブラリをロードした後にtinyMCEを起動しようとしていますcreateElementが、うまくいきません!

たぶん私は何かを忘れています、私は知りません...

基本的に機能は次のとおりです。

scriptLoad = false;    

function tinyInit() {
    if (!scriptLoad) {
        var s = document.createElement('script');
        s.src = '/tiny_mce/tiny_mce.js';
        s.type = 'text/javascript';
        document.body.appendChild(s);
        scriptLoad = true;
    }

    // wait until load
    if (typeof tinyMCE == 'undefined') {
        window.setTimeout(function() {
            tinyInit();
        }, 120);
    }
    else {
        // alright! bring it to me
        tinyMCE.init({
            mode: 'textareas',
            theme: 'simple'
        });
    }
}

Firebug でテストしましたが、ライブラリが存在します。の値を変更しtinyMCE.baseURLても、正しい値が設定されているため機能しません。

助けていただければ幸いです!

ありがとう


解決しました!

ソース コードを調べていたところ、init がテーマと言語という 2 つの既定のプロパティを作成していることがわかりました。createElementライブラリがAJAXによってロードされたときに、なぜ設定が拡張されないのかわかりません。したがって、ソリューションは init で次の 2 つのプロパティを設定します。

scriptLoad = false;    

function tinyInit() {
    if (!scriptLoad) {
        var s = document.createElement('script');
        s.src = '/tiny_mce/tiny_mce.js';
        s.type = 'text/javascript';
        document.body.appendChild(s);
        scriptLoad = true;
    }

    // wait until load
    if (typeof tinyMCE == 'undefined') {
        window.setTimeout(function() {
            tinyInit();
        }, 120);
    }
    else {
        // alright! bring it to me
        tinyMCE.init({
            mode: 'textareas',
            theme: 'simple',
            language: 'en'
        });
    }
}
4

1 に答える 1

1

通常のtiny_mce.jsファイルではなく、この方法でtinyMCEコンプレッサーバージョンをロードする必要があります。

詳細については、こちらをお読みください:http ://www.tinymce.com/wiki.php/Compressors

基本的に、試したとおりに機能しない理由は、特定のjavascriptファイルをさまざまな順序でロードする必要があるためです。

于 2012-07-04T14:35:42.133 に答える