我剛剛花了大約四個小時來追蹤這個問題。我知道是什麼造成的,但不知道爲什麼,以及「爲什麼」在擾亂我。在JavaScript中導致「'foo'未定義」的分號丟失在IE9中的錯誤
我有以下的.js文件:
function funcA() {
}
function funcB() {
do {
} while (1 == 1) return 0
}
我也有以下的HTML頁面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<script src="JScript1.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
new funcA();
</script>
</body>
</html>
當我加載頁面在IE9中我得到一個錯誤,「 'FuncA的'沒有定義。「我可以擺脫運行時錯誤做以下任何一個:
- 打開兼容性視圖在IE9
- 從頁面
- 添加一個分號後除去DOCTYPE在返回JavaScript之前(即while(1 = 1); return 0)
任何人都可以幫助我理解這裏究竟發生了什麼?
'1 = 1'是作爲yntax錯誤以及... – delnan 2011-03-22 20:19:36
整個語句'} while(1 = 1)return 0'是錯誤的。 – mplungjan 2011-03-22 20:40:05
我發佈的代碼是嚴格精簡的實際代碼版本。不管上面提到的幾點,我的文章的其餘部分對導致錯誤出現和消失的情況都是準確的。 – 2011-03-22 20:52:01