我有一个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”从不打印
答案 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。