IE6 фатальная ошибка в Joomla - PullRequest
       22

IE6 фатальная ошибка в Joomla

0 голосов
/ 04 декабря 2009

Я запускаю экземпляр Joomla на моем сервере. Когда я загружаю сайт в любом другом браузере, страница загружается нормально, однако, когда я загружаю страницу с IE6, я получаю следующую ошибку.

"Internet Explorer не может открыть интернет-сайт http://example.com", Операция прервана."

Всплывающее окно: «Продолжить загрузку этой страницы?» Я нажимаю ОК. Иногда это приводит меня на сайт, иногда приводит к ошибке 404.

У меня, похоже, нет такой же ошибки на других страницах, кроме домашней.

Есть ли какой-нибудь способ выяснить, в чем проблема? Я уверен, что это связано с javascript, загруженным на первой странице, но там так много модулей, что я не уверен, с чего начать.

Похоже, что в более поздней версии IE 7/8 нет ошибки Javascript, в Firefox нет ошибок javascript. В IE6, хотя я не могу иметь эту ошибку. Я использую шаблон Yootheme, но та же самая тема, похоже, работает в IE 6 без ошибок, когда я просматриваю его на их сайте, поэтому я полагаю, что это модуль, загруженный на первой странице.

Можно ли мне сказать, какой модуль не совместим с IE6? Я использую Firebug, но не могу найти никаких ошибок, используя его. Тем не менее, у меня все еще есть большая проблема, что сайт не будет отображаться в IE6, и 20% пользователей IE все еще держатся за браузер 2001 года.

Ответы [ 3 ]

2 голосов
/ 04 декабря 2009

Операция «Прервано» происходит, когда вы используете методы DOM для вставки содержимого в элемент, который еще не был полностью проанализирован. Понятно, что это сбивает с толку синтаксический анализатор, когда в элементе еще есть новый контент ... куда он должен идти по отношению к контенту, добавляемому DOM? Как это взаимодействует с innerHTML? Там нет последовательного ответа.

<div id="x">
    ...
    <script type="text/javascript">
        document.getElementById('x').appendChild(document.createElement('p')); // fail
    </script>
    ...
</div>

Довольно часто рассматриваемый элемент <body>. Не пытайтесь добавлять вещи к телу в коде, который выполняется во время синтаксического анализа тела.

IE7 и 8 ведут себя немного по-разному перед лицом этой ошибки, но все еще подвержены влиянию.

Объяснение Microsoft .

1 голос
/ 14 декабря 2009

Вы можете получить это, когда экстенсон вводит JavScript в тело. В моем опыте это обычно проблема, связанная с расширением.

Сначала проверьте шаблон, добавив компонент & tmpl = на страницу с сообщением об ошибке. Это должно отображать содержимое без шаблона; если ошибка все еще появляется, это проблема шаблона. Если он все еще появляется, то это расширение, и вам нужно выяснить, какое из них.

Сначала попробуйте выполнить сканирование источника страницы на предмет «domready» - это событие MooTools, которое, как известно, вызывает эту проблему. Обычно вы можете заменить событие на; load ', чтобы исправить это.

Отключите все модули содержимого и затем включите их один за другим, пока ошибка не появится снова.

Удачи, Боб

1 голос
/ 13 декабря 2009

По моему опыту, эти ошибки довольно часто встречаются при создании веб-сайта Joomla с использованием расширений, использующих библиотеку JQuery JavaScript. Многие разработчики расширений забывают избегать того, что JQuery будет использовать ту же начальную переменную, что и MooTools, и это заставит IE выдать сообщение об ошибке прерванной операции. Решение заключается в том, чтобы Google установил параметр noconflict JQuery и вставил его в код любых расширений, использующих JQuery. Это звучит сложно, но хотя я не могу вспомнить мелкие детали сейчас, потом вы поймете, что это достаточно легко, оглядываясь назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...