Internet Explorer… Не удалось открыть узел. Операция прервана.
IE, JavaScript, Работа Март 29th. 2009, 11:35дпВсе веб-разработчики прекрасно знают на собственном опыте, каким непредсказуемым бывает IE в разнообразных ситуациях, имея на все собственное мнение, которое, как известно, хрен оспоришь. И, казалось бы, ничто уже не может удивить.
Однако ж нет, может!
В одном из проектов была замечена удивительная странность: периодически в IE при загрузке некоторых страниц сайта вдруг вылетало сообщение “Не удалось открыть узел http://www.example.com/. Операция прервана” или “Internet Explorer cannot open the Internet site http://www.example.com. Operation aborted”. Причем ошибка возникала только в IE, в других браузерах страницы загружались идеально.


При нажатии на кнопку OK часть загруженной страницы закрывалась (да, при этом IE иногда успевал отобразить часть страницы) и замещалась стандартной страницей ошибки “Невозможно отобразить страницу”/”Internet Explorer cannot display the webpage”.
What the fuck?! – подумал я. Что за непонятная ерунда и как от нее избавиться? Ведь страница закрывается раньше, чем можно отследить вообще что-нибудь. Пришлось обратиться в Google. Как обычно, я оказался не одинок в своих бедах с IE. После нескольких испытаний наконец-то была определена причина ошибки и найдено ее решение.
Итак, вся проблема была в том, что IE очень не любит JS-скрипты, которые пытаются добавить элементы в существующую структуру DOM. И это часто может приводить к отключению системы обработки скриптов и полной отмене рендеринга страницы в IE.
Ниже рабочий пример закодированной страницы, которая заставляет IE падать с такой же ошибкой:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Internet Explorer: Operation Aborted. Sample error.</title>
</head>
<body>
<table>
<script>
document.body.appendChild(document.createElement('div'))
</script>
</table>
</body>
</html>
Одно из наиболее простых решений – дождаться, пока структура DOM будет полностью обработана в браузере. Для этого можно использовать событие window.onload. Многие Javascript фреймворки имеют собственные реализации этого события, например, в JQuery есть собственное событие $(document).ready. Кстати, именно это событие при использовании JQuery забыли предыдущие разработчики проекта, в котором мне довелось поучаствовать.
Ниже пример решения с использованием события window.onload:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Internet Explorer: Operation Aborted. Sample solution.</title>
</head> <body>
<ul>
<script>
window.onload = function(){
document.body.appendChild(document.createElement('div'))
}
</script>
</ul>
</body>
</html>
Таким образом, создаем обертку и ждем полной загрузки страницы перед запуском скриптов.
P.S.: IE8 уже не умирает, однако выдает ошибку в JS коде.
P.P.S.: Кто-нибудь знает, почему может не работать плагин для подсветки кода в WP? Я пытался использовать плагин WP-Syntax, однако даже просто при переходе из HTML редактора в визуальный редактор теряется большая часть кода. И даже если сохраниться при работе с HTML кодом – при выводе какая-то ерунда получается. Видимо, в WP стоит какой-то дополнительный фильтр HTML кода, но я не слишком хорошо знаю WP, чтобы от этого избавиться.
1 Апр 2009 в 23:31
Супер! 5 баллов! прямо в точку! Большое спасибо!
2 Апр 2009 в 00:26
voodoo, да пожалуйста
6 Май 2009 в 11:25
я уж думал не решу проблему) спасибо огромное.
jquery tooltip страдает такой штукой. Надеюсь ещё кому нибудь поможет
17 Июнь 2009 в 10:43
Знакомый подсказал, что можно еще использовать параметр defer = “defer”. Здесь больше написано
17 Июнь 2009 в 11:03
illusions, я тоже читал про параметр defer. Пробывал – мне не помогло.
Думал, что это чисто микрософтовская приблуда, ан нет, оказалось в стандартах имеется http://www.w3.org/TR/REC-html40/interact/scripts.html#adef-defer.
Но на мой взгляд, это какой-то странный параметр, не удивлюсь, если его объявят “deprecated” также, как и параметр language. Думаю, правильнее все-таки помещать работу скриптов в обертку window.onload.
21 Июнь 2009 в 23:40
Официально: http://support.microsoft.com/default.aspx/kb/927917
С комментами: http://blogs.msdn.com/ie/archive/2008/04/23/what-happened-to-operation-aborted.aspx
12 Июль 2009 в 15:02
Спасибо большое выручил!!!!
8 Сен 2009 в 14:19
А у меня и ie8 упал на указанном примере.
8 Сен 2009 в 14:24
Crd, такая ж у него судьба… все время падать
9 Дек 2009 в 15:49
Респект и уважуха автору:)
26 Дек 2009 в 16:13
не выходит из IE,что делать?(
26 Дек 2009 в 21:10
Дамир_юзер, не понял
28 Дек 2009 в 08:20
Что-то так не выходит ничего
28 Дек 2009 в 09:44
Zimin, не выходит КАК?
31 Дек 2009 в 01:15
Так! Я нихера не понял. Толком ни кто несказал чё нужно делать. Одно из наиболее простых решений – дождаться, пока структура DOM будет полностью обработана в браузере. А как это сделать, ни кто несказал. Надо прогу качать, чё то писать? Если эти скрипты, что вы на сайте накрамсали, надо вписывать вручную при каждом посещении страници, это ППЦ! И напишите ГДЕ именно и как надо писать это!
Internet Explorer: Operation Aborted. Sample solution.
window.onload = function(){
document.body.appendChild(document.createElement(‘div’))
}
Таким образом, создаем обертку и ждем полной загрузки страницы перед запуском скриптов.
Какую нахер обёртку? И где мы её создаём? А главное КАК?
31 Дек 2009 в 01:21
Как использовать событие window.onload? мне теперь это через гугл рыскать? Не могли хоть какой то намёк дать, что открываем и чё делаем?
31 Дек 2009 в 12:33
Скачал JQuery по той ссылке, что вы дали. Открыл этот фаил с помощью IE7 Установился какой то элемент ActiveX и теперь меил Вобще неотображается! Попытался удалить надстройки, но это непомогло. Короче теперпь даже незнаю чё делать. Страница Mail.ru не отображается!
31 Дек 2009 в 15:55
Привет, тезка. Что ж ты такой импульсивный, брат? Какой элемент ActiveX, причем здесь mail.ru вообще? Странно все это. Ты вообще понимаешь, о чем говоришь? Думаю, вряд ли. Тогда и объяснять тут что-то бесполезно.
20 Янв 2010 в 22:56
Спасибо за статью. А как в WordPress создать такую обертку, что-то я сообразить не могу, натолкните на мысль пожалуйста. В html – начинающий, в js – чайник. Одним словом, чтобы доходчиво было, что и за чем куда писать.
Спасибо.
20 Янв 2010 в 23:09
Да я думаю, тут дело не в Wordpress, а в используемой теме (шаблоне) Wordpress. Еще точнее – в этом шаблоне используются некоторые JS файлы, код в одном из которых вызывает описанную выше ошибку.
Я попытался посмотреть, что не так на Вашем блоге… но там СТОЛЬКО скриптов подключается, что, честно говоря, лень искать
Посоветую сделать так: последовательно отключайте каждый скрипт в шаблоне (например, удаляйте его код и запускайте страницу блога) и тогда поймете, какой именно скрипт вызывает ошибку. После этого дайте ссылку на сам код и я объясню, что с ним сделать.
21 Янв 2010 в 14:28
Спасибо за совет Именно так и сделаю сегодня. Буду комментировать поочередно каждый скрипт. Работа муторная, но благодарная.
Могу сразу сказать, что отключение плагинов, включая и те, которые работают на jQuery результата не дали. То есть Вы правильно сказали, что надо отрубать те скрипты, которые написаны руками.
По выяснении “виновника” отпишусь обязательно, чтобы получить дальнейшие инструкции.
Спасибо еще раз
21 Янв 2010 в 17:22
Огромное Вас спасибо за вашу методику, следуя ей, я освободился от неоткрытия блога Белая Шляпа в так называемом браузере Internet Explorer.
Начал с самого верха. Скрипт статистики liveinternet трогать не стал – это понятно. Дальше шел скрипт подгрузки Ajax API Гугла, который я установил не знаю зачем )))
Закомментровал его, очистил кэш в ИЕ, ввел адрес eavasi.ru, и О, Чудо! …. сайт открылся полностью, сообщение “Операция прервана” не выскочило. У меня, естественно, гора с плеч, я ведь расчитывал на работу на весь вечер, а тут такая удача и все за пять минут отремонтировано, причем самостоятельно, только следуя Вашему совету. Это ли ни радость?!
Вот закомментированная строка вызова злополучного скрипта:
<!---->
БОЛЬШОЕ ВАМ СПАСИБО. ЗАХОДИТЕ В ГОСТИ НА БЕЛУЮ ШЛЯПУ. ДОБРО ПОЖАЛОВАТЬ.
21 Янв 2010 в 17:24
<!—->
21 Янв 2010 в 17:31
eavasi, да пожалуйста
А скрипт лучше указывать ссылкой. Т.е. полный адрес до того скрипта, т.к. Wordpress автоматически режет все скрипты, которые ему подозрительны
21 Янв 2010 в 18:00
Я, конечно, дико извиняюсь, но разве у скрипта есть адрес?
Я дурак, да?
21 Янв 2010 в 18:08
eavasi, ну в принципе необязательно, конечно, что у скрипта будет адрес. Хотя это лучше, чем писать JS код внутри страницы.
Скрипт может быть написан прямо внутри веб-страницы, например, как-то так:
<html>
<body>
<script type=”text/javascript” >
alert(“Ku-ku!”);
</script>
</body>
</html>
либо вот так (где http://www.example.com/js/script.js – путь или адрес скрипта):
<html>
<body>
<script type=”text/javascript” src=”http://www.example.com/js/script.js”></script>
</body>
</html>
9 Фев 2010 в 12:14
У меня проблема при открытии сформированного экселевского отчета из удаленного доступа, сказали что работает только под IE6, а мой восьмой можно выкинуть в мусорку… Вот гуглю и пытаюсь найти решение проблемы, что можно открутить или прикрутить к IE8 чтобы он открывал это как IE6…
На самом деле оч тяжело, т.к. я не програмир и не сисадмин, а обычный маркетолог…
Выдает ошибку:
Internet Explorer не удается загрузить ReportViewer.aspx
Не удается открыть этот узел Интернета. Узел недоступен или не найден. Повторите попытку позднее.
9 Фев 2010 в 12:34
Наталья, на мусорку надо выбросить того разработчика, у которого сайт работает только на IE6
Боюсь, ничем тут я не помогу, разве что посоветовать установить дополнительно браузер IE6 специально для этого отчета (ужОс-какой ужОс!!!).
Для этого скачайте здесь программу IETester и установите ее на своем компьютере.
IETester позволяет тестировать сайты в разных версиях IE, в том числе и в IE6. Вам же придется тогда запускать эту программу и выбирать версию IE6 в ней, далее в поле ввода набирать адрес этого сайта и там уже скачивать свои отчеты.
9 Фев 2010 в 12:56
Огромное спасибо,
сейчас срочно скачаю и попробую…)))
Владельцы платформы просто сказали, что им проще поставить у себя везде 6-й IE и других заставить найти дистрибутивы с этой версией, чем платить за доработку платформы на совместимость с другими браузера и вообще другими браузерами
9 Фев 2010 в 13:42
Да уж… что-ж это за контора такая? Государственная, что-ли
Это я так вопрошаю, риторически, название меня не интересует на самом деле
.
Дико странный подход. Не сервис для людей, а люди для сервиса. Поэтому и показалось, что это госконтора
9 Фев 2010 в 16:16
В итоге я замучила эту платформу – она мне уже эксели выдает
Но из вредности половину экселей выдает нечитаемой кодировкой)))
Контора частная, но очень бюрократизированная, с ними во всех аспектах тяжело работать…
Но все равно спасибище огромное, проблема решается еще и тем образом что в тестере можно копировать таблицы отчета и вставлять в Excel, хотя в браузере ничего не копировалось и не выделялось… *)
9 Фев 2010 в 16:19
Пожалуйста! Рад, что все отлично завершилось
12 Фев 2010 в 15:25
Кстати на счёт иетестера.. в иетестере сайт криво – в ие6 в win2k SP4 и в win XP SP2 – всё норм ).. и часто иетестер у меня вылетал с ошибкой ).. старые версии более менее, а вот новая – вообще кошмар
. Это только у меня так?:)
* себе установил VM Warе и на нём держу ие6 и остальную гадость, которую не хочу ставить на основную ОС (благо ресурсы позволяют)
У меня вообще идея.. делать поддержку ие6 минимальной.. а если в человека ие6, выдавать страничку, типа: “Чувак, да у тебя древний браузер, попа обновится” хДД.
По моему с 1 марта этого года гугл прекращает поддержку ИЕ6 (толком не вникал, как они это сделают, не читал ещё, может это всего-лишь слух)
13 Фев 2010 в 00:10
У меня ietester пока не вылетал
В 7-ке и в XP все в порядке.
Я бы вообще перестал поддерживать IE6. Да только вот приходится. Интересно, когда же придет то время, когда мы точно все откажемся от поддержки IE6? Вот например сейчас же мало кому в голову придет поддерживать IE5.5, хотя какие-то динозавры все-таки его еще пользуют
Слышал про гугл. Даже сам микрософт отказался вроде
. Но тем не менее выставлять табличку – чувак, ты лох, у тебя позорный браузер… ну, вряд ли это правильная идея.
17 Фев 2010 в 11:26
Аффтар Биг Сенкс тебе за статейку !!!! Я 2 часа голову ломал .. пока не спросил у гугла!!!!!
17 Фев 2010 в 11:32
Svist, на здоровье
22 Фев 2010 в 21:39
Fuzzy, я вас очень прошу, опишите поподробнее где искать эти скрипты? Я уже много раз перечитывал написанное вами и пытался разобраться, но что – то никак( У меня на сайте (сделан на joomla 1.5) на каждой странице выскакивает такая ошибка. Только если на главную выводишь категории товаров (virtuemart 1.1.4) то страница грузится. Никак не могу разрешить проблему. Если знаете решение, пожалуйста укажите что делать! Заранее спасибо!
22 Фев 2010 в 21:50
Sanchos, скрипты надо искать в коде страницы сайта. Все, что начинается в коде на script, то и есть те самые скрипты. Вот по одному и пробуйте их отключать (убирать их записи из шаблона или сами файлы скриптов переименовывайте либо удаляйте).
А вообще, если честно, Joomla – это диагноз
22 Фев 2010 в 21:53
В каком файле они находятся, я читал в behavior.php или еще где? Или они могут быть где угодно?
22 Фев 2010 в 21:54
кстати вот ссылка на сайт boshe-shop.com.ua
22 Фев 2010 в 22:04
Sanchos, у Вас на сайте вирус. Мой антивирус сразу заблокировал обращение к сайту click-poisk.com. А закодировано это все в скрипте, который прописан прямо в теле страницы, начинается как function zG(). Скорее всего, сайт был взломан и внедрен этот код. Я пока подправлю Ваше сообщение, чтобы на Ваш сайт больше никто не перешел. Мало ли какой там вирус можно подцепить.
Кстати, вполне вероятно, что именно из-за этого скрипта и получается ошибка.
22 Фев 2010 в 22:17
Спасибо за подсказку! Недавно вроде почистил вирусы, щас проверю еще. А прямо в теле страницы, э то в index.php ?
22 Фев 2010 в 22:22
Я не знаю, где это в Joomla вообще может быть. Не пользуюсь и Вам бы не советовал
. А вирусы, скорее всего, с Вашего компа перетекли в инет. Точнее – троян выкрал пароли от FTP и прописал специальный код в страницы сайта.
22 Фев 2010 в 22:23
Я только не пойму что за сайт click-poisk? У меня же boshe-shop,com,ua
22 Фев 2010 в 22:26
Ну а я то откуда это могу знать? Спросите лучше у создателя вируса
. Просто этот скрипт пытается что-то загрузить с сайта click-poisk. Что-то вряд ли полезное для посетителей Вашего сайта.
22 Фев 2010 в 22:31
О.К. Спасибо за ответы ! Будем лечить! Кстати, а что у вас за антивирус?
22 Фев 2010 в 22:34
У меня честно купленный Avast Professional
Кстати, относительно Касперского очень дешевый и незаметный (в смысле нагрузки на комп).
24 Фев 2010 в 23:18
Здравствуйте Fuzzy! Пару дней назад Вы подсказали, что у меня проблема с трояном на сайте. Вирус прописал скрипты в 1042-х файлах. Вы случайно не в курсе, как автоматизировать удаление вредоносного кода? А то вручную можно чёкнуться, пока все поудаляешь.
25 Фев 2010 в 08:09
Привет! Боюсь, что не подскажу. Если бы Вы пользовались MODx, а не Joomla, я бы предложил перезаписать системные файлы, скачав CMS заново с официального сайта. Как там насчет Joomla, я не в курсе.
25 Фев 2010 в 15:14
O.k спасибо, буду разбираться
2 Март 2010 в 14:10
Подскажите пожалуйста. Использую этот простенький скрипт для меню. В опере и мазиле все работает на ура, а ie упорно отказывается его замечать(( и нигде не могу найти почему.
$(document).ready( function() {
$(‘a.header’).click( function() {
var parentID = $(this).parents(‘div’).attr(‘id’);
$(“#” + parentID + ” > .menu”).slideToggle( ’slow’ );
});
return false;
});
2 Март 2010 в 14:20
Юрий, не знаю, это может зависеть от структуры страницы, может еще какие-то детали… надо разбираться в каждом конкретном случае отдельно. Но вообще говоря jQuery в том числе тем хорош, что разработчику не приходится думать, с каким браузером приходиться работать и учитывать его особенное поведение. Т.е. скорее всего в Вашем случае что-то не так запрограммировано. Это может быть некорректный HTML код страницы, иногда как-то может влиять CSS, а может быть и ошибка в Вашем JS коде. Последовательно проверяйте эти моменты, думаю, что так и найдете, в чем проблема.
19 Март 2010 в 14:03
Почему Internet Explorer не может отобразить страницу?? Что делать???
19 Март 2010 в 14:17
Действительно, просто кошмар, что творится!!!
28 Март 2010 в 15:50
У мамы выдает такую ошибку, когда в мой мир на майле заходит. Нажимаю ОК и он зависает. И окно не закрывает! Что за фигня??? И что нам делать вообще?=(
28 Март 2010 в 15:56
Блин, люди, здесь не скорая помощь для ликвидирования последствий компьютерной безграмотности
Лизок, скачайте и установите своей маме другой браузер. Например, Mozilla Firefox. И будет Вам вселенское счастье.
25 Май 2010 в 01:05
Если ещё кто тут помогает, тогда буду премного благодарен за подсказку.
В моём случае скрипт выводится вот так
Именно этот модуль не нравится долбаному IE
В исходном коде скрипт отображается уже как нужно, но где это найти на сайте, чтобы дописать
window.onload = function(){}
я не в курсе.Не особо понимаю как оно работает, потому и не могу сам определить правильное решение.Очень рассчитываю на помощь..25 Май 2010 в 07:07
Привет! Я не понял, где Вы это прописываете. И что значит – “В исходном коде скрипт отображается уже как нужно”?
25 Май 2010 в 07:28
Привет, прописываю я это? в файле index.php шаблона. Сайт на joomla. IE ругается на модуль jxtc primetime который выводит картинки на главную страницу.Вся проблема для меня в том, что вот код из index.php
countModules('user1')) : ?>Он выводит картинку на главную.
А вот, что отображается в браузере, если глянуть исходный код:
swfobject.embedSWF("http://fison.com.ua/components/com_jxtcprimetime/rotator.swf", "jxtc4bfb5b27f10e9", 250, 350,"9.0.124", null, {xmlFile:"http%3A%2F%2Ffison.com.ua%2Findex.php%3Foption%3Dcom_jxtcprimetime%26task%3Dxml%26format%3Draw%26id%3D1"}, {wmode:"transparent",salign:"tl",allowScriptAccess:"Always"});
Я ваще не шарю в java, как то не доводилось стыкаться с такой проблемой раньше.Если я чё не то тут скопипастил извиняюсь за свою безграмотность в этом вопросе.Основной вопрос, как мне прописать window.onload = function(){} и где?
25 Май 2010 в 07:30
не пойму почему, но с тэгом code явное какие то нелады тут.
ещё раз:countModules(‘user1′)) : ?>
и исходный код из браузера
swfobject.embedSWF(“http://fison.com.ua/components/com_jxtcprimetime/rotator.swf”, “jxtc4bfb5b27f10e9″, 250, 350,”9.0.124″, null, {xmlFile:”http%3A%2F%2Ffison.com.ua%2Findex.php%3Foption%3Dcom_jxtcprimetime%26task%3Dxml%26format%3Draw%26id%3D1″}, {wmode:”transparent”,salign:”tl”,allowScriptAccess:”Always”});
25 Май 2010 в 07:31
я так понял что то тут режет вставку подобного кода:(
26 Май 2010 в 06:26
Режутся вставки с тегом script. Можете попробовать написать код без этого тега (как открывающего, так и закрывающего).
Я все равно не понял, про какой “именно этот модуль” Вы говорите. Вообще я не дружу с Joomla (считаю его просто УГ, хотя к теме вопроса это не относится, конечно), поэтому что там с модулями этой системы может быть – не имею никакого понятия. Равно и то, что я не знаю, как исправлять работу этих модулей.
27 Май 2010 в 11:06
Скрипты подключается к документу в области, где в шаблоне стоит
jdoc:include type=”head” (без тэгов), чтоб не резало.
Ещё вариант:
JHTML::_(’script’, $filename = ‘calendar.js’, $path = ‘media/system/js/’, $mootools = true ); но это так.
В моём случае первый вариант
28 Май 2010 в 07:24
К сожалению, ничем помочь не могу. Я вообще не работал с Joomla как разработчик (только немного как пользователь). Поэтому что там может не догрузиться – я без понятия.
5 Авг 2010 в 06:14
[...] ниже является копипастом с http://suhinin.com/2009/03/29/internet-explorer-operation-aborted/ с небольшими нашими добавлениями. Мы столкнулись с [...]