开发者

Why tinyMCE is not starting after load by createElement?

I'm trying to start tinyMCE after loading the library by createElement but it doesn't work!

Maybe I am forgetting something, I don't know...

Basically the function is:

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
    i开发者_运维知识库f (typeof tinyMCE == 'undefined') {
        window.setTimeout(function() {
            tinyInit();
        }, 120);
    }
    else {
        // alright! bring it to me
        tinyMCE.init({
            mode: 'textareas',
            theme: 'simple'
        });
    }
}

I've tested with Firebug and the library exists. Changing the value of tinyMCE.baseURL does not work because it has the right value.

I apreciate any help!

Thanks


Resolved!

I was looking at the source code and saw that init creates two default properties: theme and language. I don't know why they are not extending our settings when the library is loaded by createElement or AJAX. So the solution is set these two properties on init:

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'
        });
    }
}


You want to load the tinyMCE compressor version in this fashion, not the regular tiny_mce.js file.

Read here for more details: http://www.tinymce.com/wiki.php/Compressors

Basically the reason why it won't work as you have tried is because it needs to load certain javascript files in various orders.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜