[英]Why does 'string'[0] behave differently on ie8 + IIS7.5 than other browsers or local file?
考慮以下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'
這怎么可能?
好的,我發現它是由於兼容性視圖。 Internet Explorer是標准配置(我認為,我不是這台筆記本電腦的擁有者),可以選擇在兼容性視圖中顯示所有內部網頁。 要強制它使用ie8兼容性視圖,我必須將以下元標記添加到head元素:
<meta http-equiv="X-UA-Compatible" content="IE=edge" > <!-- IE8 mode -->
您也可以在“頁面”>“兼容性視圖設置”下關閉此選項
這個問題讓我朝着正確的方向前進。
編輯:我建議Web開發人員在ie8中選中此選項,因為大多數用戶都會檢查它。 這樣,您將在開發周期中捕獲這些錯誤。
EDIT2: sv_in是對的。 IE=edge
更清潔。
Jan,只是為了添加你自己的答案,更符合標准的方法來啟用兼容性視圖就是在文檔的開頭使用標准的doctype。
<!DOCTYPE html>
哪個是HTML5 doctype,也應該讓你進入標准模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.