加载脚本文件没有任何效果,并给出错误

时间:2014-08-17 11:33:46

标签: javascript

我正在加载如下的脚本文件:

    <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>

1 个答案:

答案 0 :(得分:1)

您还没有等待脚本完成下载。相反,添加一个事件监听器,并在加载后立即执行它。

s.addEventListener('load', function() {
    test.hello();
});