我正在加载如下的脚本文件:
<script type="text/javascript">
(function(){
var s=document.createElement("script");
var e=document.getElementsByTagName("script")[0];
s.async=1;
s.src="http://www.huntinggrounds.de/test.js";
e.parentNode.insertBefore(s, null);
})();
test.hello();
</script>
这里我调用函数test.hello()女巫在脚本文件中定义。
但是我会收到一个错误:TypeError:test.hello不是函数
我做错了什么?
这也是我的test.js:
var test = test || {};
test.hello = (function(){
console.log("say hello function");
});
PS:脚本仍在那里并显示在控制台中。
我正在尝试像google那样做。
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); //http://www.google-analytics.com/u/ga_debug.js
ga('create', 'UA-9098414-2', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
答案 0 :(得分:1)
您还没有等待脚本完成下载。相反,添加一个事件监听器,并在加载后立即执行它。
s.addEventListener('load', function() {
test.hello();
});