【问题标题】:What's wrong with this JS code implemented in this context?在这种情况下实现的这个 JS 代码有什么问题?
【发布时间】:2012-03-14 11:39:47
【问题描述】:

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

此代码的作用是获取页面的引用者,如果它包含您在那里看到的关键字之一,它会填充特定 div 的内容(它也显示它)

正如您所看到的,当您单击此处并显示 div 并填充包含关键字“hsbc”的内容时,它工作正常。简而言之,函数正在执行。

现在的问题是当我在这里实现完全相同的代码时,函数似乎没有执行:http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc

到目前为止我尝试过但没有成功的方法:

  • 更新 jquery
  • 删除所有其他脚本,以确保它不会与这个冲突。

为什么它在第二个链接上不起作用?

【问题讨论】:

    标签: javascript jquery referer


    【解决方案1】:

    jsfiddle 不会正常处理引荐来源网址,因此在这种情况下您从 jsfiddle 学到的内容不会转移到您的网站。您的网站正在正常处理referrer,而referrer (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 并单击新链接。那么你的问题就会消失。

    【讨论】:

    • 很好,但是如果你想直接访问,比如将 url 直接粘贴到浏览器中,然后粘贴我在上面发布的第二个链接,那将是直接引用,在这种情况下它不起作用。你说的是对的,我没注意到,但如果你直接访问会怎样
    • 当您键入 URL 或将 URL 粘贴到浏览器中时,没有引荐来源网址。仅当您从一页点击到下一页时,引用方才适用。
    【解决方案2】:

    页面的referrer是发起链接的页面;在这种情况下,从 stackoverflow 中单击上面的 jsfiddle 链接,jsfiddle 中的引用者将是 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。然后你会在 url 的末尾找到 hsbc。我认为 document.location.href 可能是您希望在实际站点中获取 hsbc 参数的内容。

    【讨论】:

    • 我将它用于从 Google 到该页面的流量,所以我想我会继续使用 document.referer
    • 这和框架有什么关系?即使它被加载到框架中,引用者也是加载它的框架页面的引用者......
    【解决方案3】:

    您的代码未正确执行。用以下代码包装所有代码:

    $(function(){
    
    });
    

    然后将整个<script></script> 块移动到头部。

    更优选的方法是将该代码添加到您已经存在的文档就绪语句中,在 head 标记中找到。

    $(document).ready(function () {
    

    更多信息请参见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2016-05-12
      • 2017-07-09
      • 1970-01-01
      相关资源
      最近更新 更多