在dom加载之前执行javascript

TJR*_*TJR 9 javascript jquery

我想开发一个处理使用过的框架的句柄javascript类.

例如:

myClass.addFramework('jQuery'); // just an example
Run Code Online (Sandbox Code Playgroud)

它工作正常,我的类添加框架 - 但如果有任何jQuery代码,它将无法工作,因为框架是在dom准备好后加载的,所以一个默认的jQuery代码片段jQuery(document).ready(function(){});无法工作,因为'jQuery '尚未定义.

是否有任何解决方案,我可以编写一个"修复"脚本,在dom的其余部分开始加载之前,我的所有addFramework方法都必须执行?

小智 3

您应该在创建标签时使用 onload 事件script。你可以这样使用:

myClass.addFramework('jQuery', function () {
    // do stuff after jquery loaded.
});
Run Code Online (Sandbox Code Playgroud)

你可以这样实现:

myClass.addFramework = function (name, onload) {
    var _script = document.createElement('script');
    _script.onload = function () {
        onload();
    }
    _script.onreadystatechange = function () {
        if (this.readyState == 'complete') onload();
    }
    _script.src = myClass.FRAMEWORK_BASE + '/' + name + '.js';
    document.getElementsByTagName('head')[0].appendChild(_script);
};
Run Code Online (Sandbox Code Playgroud)