Тяжелый Javascript с URL заставляет Chrome (DevTools?) Сообщать о плохих 404-х. - PullRequest
2 голосов
/ 10 октября 2011

Страница, содержащая хорошую загрузку javascript, также содержит URL-адреса, закодированные в javascript в виде строк JS.

Проблема в том, что Chrome (или, может быть, это просто Инструменты разработчика?) Пытается перейти к этим закодированным URL-адресам, как если бы они были частью HTML.

Кажется, что это происходит только тогда, когда на странице много javascript.

Страница выглядит более или менее как:

<body>
    ....
    <script type="text/javascript">
        //<![CDATA[
        google.maps.event.clearListeners(window.kgmm["marker32"],"click");
        google.maps.event.addListener(window.kgmm["marker32"],"click",clicked);
        window.kgmp["marker54"]=new InfoBox({
            content: "<div class=\"wrapBox\" align=\"left\"><div class=\"imageBox\"><a href=\"#ir_rih\" target=\"_blank\"><span class=\"imageWrap\">"

/* the issue -> */  +"<img src=\"?ajax=1&cls=owAjaxHandler&mtd=thumbnail&amp;i=wp-content\/uploads\/2011\/07\/Bahrija &amp; Fomm ir-rih08.jpg&amp;w=115&amp;h=115\" border=\"0\" alt=\"\"\/><\/"

                    +"span><\/a><\/div><div class=\"specsBox\"><h2>Fomm Ir-Rih<\/h2><div class=\"shortDesc\"><\/div><a class=\"moreInfo\" href=\"#ir_rih\" onclick=\"return krtShowTabByHash(this);\">more details &raquo;<\/a><\/div><\/div>" ,
            disableAutoPan: false,
            maxWidth: 0,
            pixelOffset: new google.maps.Size(-214, 0),
            zIndex: null
        });
        //]]>
    </script>
    ....
</body>

Ниже приведен скриншот того, как это выглядит в консоли:

Screenshot


Имейте в виду, что я не ищу исправления . Пожалуйста, не советуйте, как улучшить код.

Вместо исправления я ищу ответ на вопрос , почему это происходит.

NB: Разве CDATA не должен был помешать Chrome анализировать содержимое JavaScript как элементы XML?


Пример URL-адреса, вызывающего проблему:

  1. Сначала иди сюда .
  2. Открыть консоль (Right Click -> Inspect Element -> Console tab)
  3. Нажмите на второй элемент в списке страниц, который называется «Мдина, Рабат, Дингли и Багрия»
  4. Продолжайте смотреть на консоль, пока страница загружается, вы должны увидеть вышеупомянутые ошибки.

NB: Кто-то пометил вопрос как "слишком локализовано" . Я хотел бы отметить, что это не так. Я сталкивался с этой проблемой на нескольких сайтах, но никогда не задумывался над этим (до сих пор), потому что сайт все еще работает.

1 Ответ

0 голосов
/ 10 октября 2011

Я бы положил доллары на пончики, что проблема в том, что ты избежал параметра i url:

src=\"?ajax=1&cls=owAjaxHandler&mtd=thumbnail&amp;i=wp-content\/uploads\/2011\/07\/Bahrija &amp; Fomm ir-rih08.jpg&amp;w=115&amp;h=115\"

По сути, экранирование обратной косой черты не работает для URL. Если вы хотите перейти по этому URL, вам нужно отправить его как:

src=\"?ajax=1&cls=owAjaxHandler&mtd=thumbnail&amp;i=wp-content%2Fuploads%2F2011%2F07%2FBahrija%20%26%20Fomm%20ir-rih08.jpg&amp;w=115&amp;h=115\"

Крис Редактировать: декодирование его в виде строки JavaScript приведет к:

src="?ajax=1&cls=owAjaxHandler&mtd=thumbnail&amp;i=wp-content/uploads/2011/07/Bahrija &amp; Fomm ir-rih08.jpg&amp;w=115&amp;h=115"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...