簡體   English   中英

為什么'string'[0]在ie8 + IIS7.5上的行為與其他瀏覽器或本地文件不同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM