Что не так с этим кодом JS, реализованным в этом контексте? - PullRequest
0 голосов
/ 14 марта 2012

http://jsfiddle.net/dS4r3/24/?q=hsbc

Что делает этот код, так это то, что он берет реферер страницы и, если он содержит одно из ключевых слов, которые вы видите там, он заполняет контентом этого конкретного div (это такжепоказывает это)

Как вы можете видеть, он отлично работает, когда вы нажимаете там, и появляется div, и он заполнен тем содержимым, содержащим ключевое слово "hsbc".Короче говоря, функция выполняется.

Теперь проблема в том, что когда я реализовал точно такой же код, функция, похоже, не выполняется: http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc

Вещи, которые я пробовал до сих пор и не работали:

  • update jquery
  • удалите все остальные сценарии, чтобы убедиться, что он не конфликтует с этим.

Почему он не работает со второй ссылкой?

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Реферер страницы - это страница, на которой запущена ссылка;в этом случае, нажав на ссылку jsfiddle выше из stackoverflow, реферер в jsfiddle будет /8222480/chto-ne-tak-s-etim-kodom-js-realizovannym-v-etom-kontekste

jsfiddle выполняется в кадре, поэтому вы получаете реферер субфрейма в качестве родителя;вот почему ваш пример теста работает в jsfiddle.Я думаю, вам нужно будет использовать или top.document.referrer или parent.document.referrer, чтобы получить URL-адрес stackoverflow как то, что ссылало вас на страницу jsfiddle (если она не нарушает межсайтовые ограничения безопасности js)

Если вы хотите узнать, что такое URL текущей страницы (например, в контексте второй ссылки), вы должны использовать document.location.href, чтобы получить http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc вместо document.referrer.Тогда вы найдете hsbc в конце URL.Я думаю, что document.location.href может быть тем, что вы хотите, чтобы ваш фактический сайт получал параметр hsbc.

1 голос
/ 14 марта 2012

jsfiddle не обрабатывает реферер нормально, поэтому то, что вы изучаете из jsfiddle, в этом случае не переносится на ваш сайт. Ваш веб-сайт обрабатывает реферера в обычном режиме, и реферер (/8222480/chto-ne-tak-s-etim-kodom-js-realizovannym-v-etom-kontekste) просто не содержит строку hsbc.

Что вам нужно сделать, это создать новую страницу (скажем, new-page) на вашем веб-сайте, которая имеет ссылку на cotizador-de-seguros-auto, посетите new-page/?kw=hsbc и нажмите на новую ссылку. Тогда ваша проблема исчезнет.

0 голосов
/ 14 марта 2012

Ваш код не выполняется должным образом. Оберните весь ваш код:

$(function(){

});

Затем переместите весь блок <script></script> к голове.

Более предпочтительный способ - добавить этот код к уже существующему заявлению о готовности документа, найденному в тегах заголовка.

$(document).ready(function () {

См. здесь для получения дополнительной информации.

...