考虑以下Html文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>test</title>
<style type="text/css">
</style>
</head>
<body>
<script type="text/javascript">
alert('' +
'\'test\'[0] = \'' + 'test'[0] + '\'\n' +
'\'test\'.charAt(0) = \'' + 'test'.charAt(0) + '\'\n'
);
</script>
</body>
</html>
当我在本地计算机上打开此文件时,它会提供以下输出(在ie8和Chrome中):
'test'[0] = 't'
'test'.charAt(0) = 't'
当我在IIS7.5上托管此文件时,我仍然在Chrome中获得相同的结果,但ie8给出了以下结果:
'test'[0] = 'undefined'
'test'.charAt(0) = 't'
这怎么可能?
答案 0 :(得分:0)
好的,我发现它是由于兼容性视图。 Internet Explorer是标准配置(我认为,我不是这台笔记本电脑的拥有者),可以选择在兼容性视图中显示所有内部网页。为了强制它使用ie8兼容性视图,我不得不在head元素中添加以下元标记:
<meta http-equiv="X-UA-Compatible" content="IE=edge" > <!-- IE8 mode -->
您也可以在“网页”&gt;下关闭此选项'兼容性视图设置'
This question让我朝着正确的方向前进。
编辑:我建议网络开发人员在ie8中选中此选项,因为大多数用户都会检查它。这样您就可以在开发周期中捕获这些错误。
EDIT2: sv_in是对的。 IE=edge
更清洁。
答案 1 :(得分:0)
Jan,只是为了添加您自己的答案,更符合标准的方法是启用兼容性视图,只需在文档开头使用标准文档类型。
<!DOCTYPE html>
哪个是HTML5 doctype,也应该让你进入标准模式。