如何从外部文件onload正确执行函数?

时间:2016-12-22 09:49:20

标签: javascript onload strict

我在myModule.myFunction上执行的较大外部脚本mymodule.js中有一个函数load。一切似乎都很好。但是现在我已经添加了

"use strict";

位于外部脚本的顶部。我得到了一个

TypeError: MyModule is undefined

页面停止工作。所以我想知道我在哪里做了一些有问题的事情。这是我的页面的结构(不幸的是,我没有设法产生一个最小的例子):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
<body>
    <!-- Some html here -->
    <script src="mymodule.js"></script>
    <script>
        function myOnload() {
            myModule.myFunction();
        }
        window.addEventListener('load', myOnload, false);
    </script>
</body>
</html>

以下是MyModulemymodule.js的内容:

var myModule = (function(){
    // stuff
})();

1 个答案:

答案 0 :(得分:1)

myModule.js中,您需要明确地将myModule分配给window对象(使用&#34时;使用严格&#34;)。

将其更改为window.myModule = ...

原因:在草率模式下,未声明的变量会自动添加为全局对象的属性。在严格模式下,它们不是为了避免意外干扰。