2010-06-08 65 views
0

看来,IE8推迟JavaScript,但也不会阻止。我已经设置了一个测试环境来证明这一点。这里的html页面(使用您的服务器替换192.168.1.xxx):IE不阻止javascript

<html> 
<head> 
<title>IE Pains</title> 
<script type='text/javascript' src='http://192.168.1.xxx/ietest/js.js'></script> 
<script type='text/javascript'> 
    scream('hello world'); 
</script> 
</head> 
<body> 
</body> 
</html> 

而且JS文件:

function scream(str) { 
alert(str); 
} 

会出现这个错误,还是IE无法识别尖叫功能,因为它尚未完成加载js.js?

编辑:我创造了我的服务器上的网页:http://www.codenothing.com/ietest/,这在IE8加载罚款,但把它降低到本地机器上,并通过局域网打算似乎是失败。我已经在通过192.168协议的两个不同的无线网络上证实了这一点。

+1

确定的路径'js.js'是正确的? – 2010-06-08 19:05:08

+0

它不应该是这样。你可以发布你的外部js的内容吗? – 2010-06-08 19:05:28

+1

@Chetan - 他做了,在这个问题:) – 2010-06-08 19:06:30

回答

2

除非存在asyncdefer属性,否则脚本在所有浏览器中都受阻,包括IE8。大量的脚本依赖脚本元素阻止解析的可预测性,包括库和框架(例如,如果浏览器没有等待jQuery脚本完成,你怎么能声明$(document).ready()?)

检查以下内容:

  • 在JS文件中没有语法错误或拼写错误。
  • JS文件的路径是正确的。
  • 该函数在全局范围内声明。

你甚至可以尝试jQuery库本身:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    alert("test"); 
}); 
</script> 
+0

- 添加为主编 – 2010-06-08 19:38:11

+0

编辑此外,你说的一切都是正确的,这就是为什么我很困惑,为什么它只是跨越本地网络。 – 2010-06-08 19:46:21