JavaScript,命名空间,IE11错误SCRIPT5009

时间:2014-05-09 20:01:53

标签: javascript javascript-namespaces

这是HTML页面:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="test.js"></script>
</head>
<body>

<script type="text/javascript">
    var myobject = new mynamespace.main.Main ("This is string.");
</script>

</body>
</html>

Ant这是 test.js

var mynamespace =
{
    main:
    {
        controller: {},
        view: {}
    },

    elements: {}
};

mynamespace.main.Main = function (string)
{
    this.string = string;
    this.controller = new mynamespace.main.controller.Controller (this.string);
}

mynamespace.main.controller.Controller = function (string)
{
    this.view = new mynamespace.main.view.View (string);
    this.element = new mynamespace.elements.Element (string);
    console.log ("Controller, string: " + string);
}

mynamespace.main.view.View = function (string)
{
    console.log ("View, string: " + string);
}

mynamespace.elements.Element = function (string)
{
    console.log ("Element, string: " + string);
}

两个文件都放在同一个文件夹中。

Internet Explorer 11返回错误: SCRIPT5009:未定义对象mynamespace。

只有将 test.js 的代码放入HTML页面时,此代码才有效。我该怎么办呢?

我不使用像jQuery这样的库。

1 个答案:

答案 0 :(得分:0)

您可能需要清除缓存吗?

http://social.technet.microsoft.com/Forums/ie/en-US/ba430f1d-f3a5-44f0-aaec-3b09c4d68d1c/ie-11-javascript-files-are-not-loaded-correctly-from-cache?forum=ieitprocurrentver

也许IE 11同步脚本加载没有按预期工作。即它默认为异步而不是就地或延期。

http://msdn.microsoft.com/en-us/library/ie/hh673524(v=vs.85).aspx

否则,我无法在Win 64 win 7的IE 11中使用相同的设置重现这一点。

enter image description here