gpt4 book ai didi

javascript - 有条件的 javascript 加载

转载 作者:搜寻专家 更新时间:2023-11-01 05:26:00 24 4
gpt4 key购买 nike

对于我的后端,我想在它检测到某些元素时自动加载 javascript 文件。这是一个例子:

if($('.wysiwyg').length>0) {
include('javascript/ckeditor/ckeditor.js');
$(".wysiwyg").ckeditor();
}

但是当我执行代码时,我得到 $(".wysiwyg").ckeditor is not a function 因为浏览器似乎仍在加载或解析包含在行中的 javascript 文件前。如果我在该函数之前放置一个警报弹出窗口,它确实会起作用,因为它“暂停”了我猜想的脚本并给了它加载文件的时间。

有什么方法可以知道文件何时实际加载以便可以执行后续代码?

编辑:看来我问这个问题有点太早了。我找到了解决此问题的回调函数的 e.onload 属性。如果其他人可能偶然发现同样的问题,这就是我现在的职责:

function include(script, callback) {
var e = document.createElement('script');
e.onload = callback;
e.src = script;
e.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(e);
}


if($('.wysiwyg').length>0) {
include('javascript/ckeditor/ckeditor.js', function() {
$(".wysiwyg").ckeditor();
});
}

最佳答案

为什么不使用内置的基于 ajax 的 getScript?
它还有一个回调机制,允许您仅在成功加载所需脚本后才执行一些代码:

function include(script,callback){
$.getScript(script, function() {
if(typeof callback == 'function')
callback.apply({},arguments);
});
}

然后你可以这样使用它:

if($('.wysiwyg').length>0) {
include('javascript/ckeditor/ckeditor.js',function(){
$(".wysiwyg").ckeditor();
});
}

关于javascript - 有条件的 javascript 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6647103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com