包装脚本以接收api函数调用

时间:2016-09-20 17:46:43

标签: javascript jquery api

我有一个脚本,需要公开函数,以便可以从粘贴脚本的页面调用这些函数。

例如,脚本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函数?

1 个答案:

答案 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);