http://jsfiddle.net/dS4r3/24/?q=hsbc
这段代码的作用是它需要页面的引用者,如果它包含你在那里看到的一个关键词,它会填充特定div的内容(它也会显示它)
正如您所看到的那样,当您单击此处并且div出现并且其中包含关键字“hsbc”的内容时,它可以正常工作。简而言之,该功能正在执行中。
现在的问题是当我在这里实现完全相同的代码时,函数似乎无法执行:http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc
到目前为止我尝试过的事情并没有奏效:
为什么不在第二个链接上工作?
答案 0 :(得分:1)
jsfiddle不会正常处理referrer,因此在这种情况下你从jsfiddle学到的东西不会转移到你的网站。您的网站正常处理引荐来源,引荐来源(http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context
)根本不包含字符串hsbc
。
您需要做的是在您的网站上创建一个新页面(例如new-page
),其中包含指向cotizador-de-seguros-auto
的链接,访问new-page/?kw=hsbc
并点击新链接。然后你的问题就会消失。
答案 1 :(得分:1)
页面的引荐来源是启动链接的页面;在这种情况下点击stackoverflow上面的jsfiddle链接,jsfiddle中的referrer将是http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context
jsfiddle在一个帧内运行,因此您将子帧的引用者作为父项;这就是为什么你的示例测试在jsfiddle中工作的原因。我想你需要使用或者top.document.referrer或parent.document.referrer来获取stackoverflow url作为jsfiddle页面的引用(如果它没有破坏js跨站点安全限制)
如果您想知道当前页面的URL是什么(例如在第二个链接的上下文中),您将使用document.location.href来获取http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc
而不是document.referrer。然后你会在网址的末尾找到hsbc。我认为document.location.href可能是您在实际站点中想要的hsbc参数。
答案 2 :(得分:0)
您的代码未正确执行。用以下代码包装所有代码:
$(function(){
});
然后将整个<script></script>
块移到头部。
更优选的方法是将您已存在的文档就绪语句添加到头标记中。
$(document).ready(function () {
有关详细信息,请参阅here。