不使用任何外部库如何在使用之前等待脚本加载。
在我的情况下,我正在使用:
加载脚本(function (w,d,t,s,e,r) {
e = d.createElement(o);
r = d.getElementsByTagName(o)[0];
e.async = 1;
e.src = g;
r.parentNode.insertBefore(e, r)
})(window, document, 'script', '//mydomain.com/path/to/script.js');
后来:
// then later I want to use some code form the script:
var obj = new classFromTheInjectedScript();
是否有等待脚本加载然后开始使用它?
注意:我有办法可以在我想要的脚本中触发事件 如下所示加载然后收听它,但这是一个好主意吗?
(function(w,d){
document.addEventListener('scriptLoadedCustomEvent',onScriptReady);
function onScriptReady(){
// what I need to do goes here!
}
})(window,document);
答案 0 :(得分:6)
你应该可以做这样的事情!
var script = document.createElement('script');
script.src = url; //source
var callback = function (){
// do stuff after loaded
}
script.onload = callback;
document.head.appendChild(script); //inject where you need it to be
答案 1 :(得分:5)
您可以对onload
标记使用onerror
和<script>
个事件。好的例子here。
答案 2 :(得分:-2)
您可以手动读取文件源并将其插入脚本标记中,这样您就可以获得AJAX响应事件