即6无法找到javascript定义

时间:2012-03-29 15:11:57

标签: javascript jquery internet-explorer-7 internet-explorer-6

我有一个javascript文件a.js,它的内容有时像这样

window.model={};

model.init=(
function(){return "something"}
)();

在我的html文件中,我有类似的东西:

<script type="text/javascript" src="path/to/a.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
       model.init();
    });
</script>

在chrome,firefox和ie8中有效。但是在ie6或ie7中,模型没有定义。

我不知道为什么。任何人都可以帮助我。

谢谢!


我提出了一些警告

in html:

<script type="text/javascript" src="path/to/a.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
           alert("ie6");
       model.init();
    });
</script>

在js

alert("ie7");
window.model={};

model.init=(
function(){return "something"}
)();

首先打印“ie6”,但“ie7”从不打印

2 个答案:

答案 0 :(得分:2)

参考模型与声明它的方式相同,作为window上的属性。

window.model.init=(function(){return "something"})();

$(document).ready(function() {
   window.model.init();
});

或者,您可以执行相反的操作并将其声明为全局变量。

var model={};

答案 1 :(得分:1)

这可能是由不同的执行顺序或某些“提升”问题引起的。

尝试使用“var model = {}”初始化模型。然后尝试将内容转储到日志以检查执行顺序。 IE有工具可以使用console.log,或者你可以试试firebug lite。