在我的页面中有两个链接,注册和登录。
现在重要的是注册。当我单击它时,它使用jquery加载函数加载.tpl文件。在这个tpl文件中,我包含一个带有<script>
ofcourse的新js文件,它在safari,ff,opera和chrome中完美运行,但当然,为什么它应该在IE中工作?
所以我的问题是,我该怎么做才能让它在IE中运行?我想如果我将js放在.tpl文件中可以解决我的问题,但是如果有更好的解决方案,我想听听它。不,这没有用,所以我猜没有解决方案:D
现在我尝试了一个简单的警报,它运作得很好。
我的问题已经改变了。如果JS文件中有$(document).ready
IE,则“忽略”整个脚本,但如果不存在则完美无缺。问题是我需要准备好该文件。 :D
感谢。
答案 0 :(得分:3)
确保脚本标记不是以这种形式:
<script ... />
IE只接受:
<script>...</script>
答案 1 :(得分:3)
如果脚本被“忽略”,如果有$(文档)就绪,则脚本的该块中可能存在错误,并且IE设置为在出错时停止运行脚本。
尝试简化您的问题以尝试确定它。例如,将以下代码复制到一个全新的html文件中并进行试用(注意:您需要将src路径更改为jquery.js文件。)
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert('test');
}
</script>
</head>
<body>
</body>
</html>
以上是否适合您使用IE或是否也会被忽略(再次,更新jquery.js文件的路径后)?
如果这样可行,但在您的方案中不起作用,请在IE中检查您的页面来源,了解所有内容的加载方式。我唯一一次看到$(document).ready()抛出一个错误就是当jquery.js文件没有加载到它之前或者与$()函数发生冲突时......在这种情况下你会需要noConflict()函数。
答案 2 :(得分:0)
IE认为注入脚本标记是一个安全问题。将脚本标记更改为:
document.write("<scri" + "pt src=...></scri" + "pt>");
答案 3 :(得分:0)
你确定你加载的javascript在IE中正确执行吗?也许它有一个javascript怪癖会抛出一个错误并使它看起来好像没有加载?
要测试这一点,非动态地包括javascript(包含在页面或类似内容中)并在脚本代码中设置断点并逐步执行以确保它一直执行。 Firebug将是一个很好的工具。
我意识到这是抓住稻草,但也许尝试一下?