IE не блокирует JavaScript - PullRequest
0 голосов
/ 08 июня 2010

Кажется, что IE8 откладывает JavaScript, но также не блокирует. Я установил тестовую среду, чтобы доказать это. Вот HTML-страница (замените 192.168.1.xxx на ваш сервер):

<html>
<head>
 <title>IE Pains</title>
 <script type='text/javascript' src='http://192.168.1.xxx/ietest/js.js'></script>
 <script type='text/javascript'>
  scream('hello world');
 </script>
</head>
<body>
</body>
</html>

И файл js:

function scream( str ) {
 alert( str );
}

Я вижу это неправильно, или IE не распознает функцию scream, потому что она не закончила загрузку js.js?

EDIT : Я создал страницы на своем сервере: http://www.codenothing.com/ietest/,, который нормально загружается в IE8, но перенос его на локальную машину и прохождение через локальную сеть, похоже, дает сбой. Я подтвердил это в двух разных беспроводных сетях, использующих протокол 192.168.

1 Ответ

2 голосов
/ 08 июня 2010

Скрипты блокируются во всех браузерах, включая IE8, если не присутствуют атрибуты async или defer. Огромное количество скриптов зависит от предсказуемости элементов скрипта, блокирующих синтаксический анализ, включая библиотеки и инфраструктуры (например, как вы можете объявить $(document).ready(), если браузер не ждал завершения сценария jQuery?)

Проверьте следующее:

  • В файле JS нет синтаксических ошибок или опечаток.
  • Путь к файлу JS правильный.
  • Функция объявлена ​​в глобальной области видимости.

Вы даже можете попробовать саму библиотеку jQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function(){
    alert("test");
});
</script>   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...