Ошибки JavaScript: «Реле не установлено», только в IE 7, 8 - PullRequest
10 голосов
/ 07 июля 2011

Мой JavaScript не загружается из-за ошибок, которые он получает, только в IE.Я использовал отладчик, чтобы получить следующие ошибки.Эта страница правильно отображает JavaScript в Safari, FF и Chrome, но не в IE и только на определенных страницах, подобных этой.

http://tsqja.deznp.servertrust.com/Lakeside_721_2_Shelf_Heavy_Duty_Utility_Cart_p/lak-721.htm

1) Реле не установлено (используется как window.postMessagetargetOrigin), не может отправить междоменное сообщение

2) Неверный аргумент.jquery.min.js

Есть идеи, что означает первая ошибка?Я переключил мою сборку jQuery с последней версией, и она все еще делает то же самое.

ОБНОВЛЕНИЕ Я обновил свой jquery.min.js до последней версии, и я понял, что этогде страница перестает загружаться ... после того, как недопустимый аргумент появляется в jquery-latest.min.js, строка 16, символ 15511, который представляет собой следующую букву 'b':

finally{b=[e,f],c=0}}return this}

1 Ответ

10 голосов
/ 05 августа 2011

DEMO http://so.devilmaycode.it/javascript-errors-no-relay-set-only-in-ie-7-8/

  • 1) - Нет ретранслятора (используется как window.postMessage targetOrigin), невозможно отправить междоменное сообщение

вызвано кнопкой <g:plusone /> на вашем сайте: ( Google занят этим уведомлением ) единственный способ, которым я нашел, чтобы обойти эту проблему, этосделав что-то вроде этого:

$(function() {
    setTimeout(function() {
        gapi.plusone.render("plusone-div");
    },
    1500);

});

  • 2) - неверный аргумент.jquery.min.js

просмотр вашего исходного кода - это хаос!;-) OMG

  • у вас много ошибок вроде (отсутствует http:// указанный протокол):

  • отличаетсяcase-name папки типа /v/newsite/ и /v/Newsite/ это действительно важно, если вы находитесь под никсом, но поскольку вы используете ASP ...

  • код, подобный этому AttachEvent(window, 'load', store_init); при использовании jqueryкак jQuery(document).ready(function() {

  • многократное включение одного и того же файла (этот файл включается 3 раза) /a/j/product_details.js

  • массовое использование $(function(){ & $(document).ready(function(){ & $(window).load(function(){ несколько раз, когда нужен только один;

  • js global по всей странице, вверху, в середине и внизуИМХО, они должны оставаться на вершине ...

  • загружается одновременно другая версия jquery, например: jquery-1.4.4.min.js & jquery-1.6.2.js & 1.4.2/jquery.min.js вместе

  • незначительный, но всегда дерьмовый, у вас есть <meta />, <link /> и <script /> в смешанном порядке, как куриный салат, где они должны оставаться в порядке, мета, ссылки и сценарий предпочтительно в концерage.

  • отсутствует точка с запятой ; все вокруг;

  • бессмысленный / некорректный код, как показано ниже, и многое другое ...


if (!/\/shoppingcart\.asp/i.test(window.location.pathname)) {
    jQuery(document).ready(function() {
        jQuery('a').each(AddCartLink)
    });
}

var global_Config_EnableDisplayOptionProducts = 'False';

var global_ImageSeed = 'test.jpg';
global_ImageSeed = global_ImageSeed.substring(...

Ваш сайт без ошибок: http://so.devilmaycode.it/javascript-errors-no-relay-set-only-in-ie-7-8/

я сделал следующее:

  1. переупорядочил основные теги meta, links, script
  2. удалил дерьмовые виджеты, такие как addthis, google, facebook
  3. «попытался» поместить все глобальные переменные наверх;
  4. прокомментировал часть кода, которая вызывает проблемы с хромом в TopScriptsTEST5.js этот файлваша основная проблема , (вы должны увидеть огромный кусок кода с комментариями)
  5. удалено дублирование включения файла,
  6. удалено последняя версия jquery, потому что я сильно сомневаюсь, что все остальныеваш код работает с последней версией jquery, поэтому используйте 1-4-4 вместо
  7. некоторые другие исправления здесь и там ... ничего особенного

надеюсь, что этопроверка немного помогла, но я думаю, что вам нужен экзорцист; -)

...