我有一个脚本,需要公开函数,以便可以从粘贴脚本的页面调用这些函数。
例如,脚本thescript.js是:
$index
现在,放置脚本的index.html就像:
$index +1
因此,在正常情况下,index.html会显示两条消息“已加载脚本”和“已调用API函数”。
但是,如果脚本需要花费时间加载,console.log('The script has been loaded');
function doThisAPI() {
console.log('The API function has been called');
}
调用将抛出“未捕获的ReferenceError:未定义doThisAPI”。
如何包装脚本以便只在脚本完全加载后才会执行API函数?
答案 0 :(得分:1)
在脚本加载时添加eventlistener并从该函数调用doThisApi。
var s = document.createElement('script');
s.async = true;
s.src = '//theScript.js';
var s0 = document.getElementsByTagName('script')[0];
s.addEventListener('load', function (e) {
doThisAPI();
}, false);
s0.parentNode.insertBefore(s, s0);