我要向我的客户提供一些javascript来放置他们的页面。 那个javascript代码注入我的客户端页面引用我服务器中的一些javascript。 与此类似:
if (typeof MYSUPERVAR == 'undefined') {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = '//mywebsite.com/myjs.js';
script.async = true;
script.type = 'text/javascript';
head.appendChild(script);
}
//After JS is loaded call MYJS_FUNCTION_A
MYJS_FUNCTION_A()
“myjs”创建MYSUPERVAR并创建一个应该在每次用户想要时调用的函数(通过添加相同的javascript)。 这是为了添加一些图像功能,因此用户必须每次都将脚本与imageid放在一起。 问题是这会一直为myjs创建一个脚本引用。
在添加一个引用之前,可以知道myjs是否正确加载了吗?
答案 0 :(得分:1)
你可以在加载完成后加载js文件并调用回调函数。
<script>
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
loadJS('/script/script.js', function() {
// put your code here to run after script is loaded
});
</script>
答案 1 :(得分:0)
您可以在myjs.js中设置一个全局变量(如window.JSLOADED),并使用true值,并创建一个定时器(使用setInterval)来检查JSLOADED == true。 当myjs.js加载时,它设置JSLOADED,然后继续其余的。 希望你解决它。