Я просто потратил около четырех часов на поиск этой проблемы. Я знаю, что вызывает это, но не знаю, почему и «почему» беспокоит меня.
У меня есть следующий файл .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)
Может кто-нибудь помочь мне понять, что именно здесь происходит?