网站如何突出显示您在搜索引擎中使用的搜索字词?

Rob*_*cks 9 search-engine highlight keyword

我看到一些网站突出显示您使用的搜索引擎关键字,以便访问该页面.(例如您在Google搜索列表中输入的关键字)

它如何知道您在搜索引擎中输入的关键字?它检查引用者HTTP头或什么?任何可用的脚本可以执行此操作吗?它可能是服务器端或JavaScript,我不确定.

Lau*_*ves 12

这可以在服务器端或客户端完成.搜索关键字通过查看HTTP Referer(sic)标头来确定.在JavaScript中,您可以查看document.referrer.

获得推荐人后,您可以查看它是否是您了解的搜索引擎结果页面,然后解析搜索字词.

例如,Google的搜索结果的网址如下所示:

http://www.google.com/search?hl=en&q=programming+questions
Run Code Online (Sandbox Code Playgroud)

q查询参数的搜索查询,所以你想拉了这一点,并取消URL-逃避它,从而导致:

programming questions
Run Code Online (Sandbox Code Playgroud)

然后,您可以在页面上搜索这些术语,并在必要时突出显示它们.如果您正在执行此服务器端 - 您需要在将HTML发送到客户端之前对其进行修改.如果你在客户端做它,你就会操纵DOM.

现有的库可以为您执行此操作,就像这样.

  • 是的,这是真的,但是因为搜索术语的突出显示只是为了方便,所以这不是什么大问题.如果你没有得到推荐人,你就没有什么可以强调的. (4认同)
  • 请注意Google新推出的ajaxy风格推介字符串.据我了解,跟踪引用URL将不再有效,因为浏览器不会传递超出哈希值的任何内容.http://getclicky.com/blog/150/googles-new-ajax-powered-search-results-breaks-search-keyword-tracking-for-everyone (2认同)

小智 8

意识到这一点可能为时已晚,无法发挥作用......

拜托,求求你 - 找出如何做到这一点,然后永远不要做.作为一个网络用户,当我遇到一个自动执行此操作的网站时,我发现它非常烦人(并且分散注意力).大多数情况下,它最终会突出显示页面上的每个其他单词.如果我需要帮助在页面中找到某个单词,我的浏览器有一个更合适的"查找"功能,我可以随意使用或不使用,而不是必须重新加载整个页面才能让它去当我不想要它时(这是绝大多数时间).

  • 我想知道您是否代表了可能会发现它有帮助的绝大多数网络用户。 (2认同)
  • 我当然同意@1amzave。我的浏览器有一个很棒的搜索功能,如果需要的话我会使用它。亮点“非常”分散注意力,特别是在快速浏览后我决定深入阅读该页面。更糟糕的是,大多数这样做的网站都没有提供关闭它的方法。*我*知道如何解决它,但我是一名网络开发人员。大多数人都没有线索,这意味着他们必须阅读包含数十个突出显示的单词的页面。如果他们决定打印该页面,或者以 HTML 格式通过电子邮件将其发送给某人,该页面就会被保留,甚至可能永久保留。 (2认同)

ale*_*lex 5

基本上,你...

  1. 检查document.referrer
  2. 获取包含搜索词的 GET 参数的域列表。

    var searchEnginesToGetParam = {
        'google.com' : 'q',
        'bing.com' : 'q'
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 提取适当的 GET 参数,然后decodeURIComponent()就可以了。

  4. 解析要突出显示术语的文本节点(请参阅用 JavaScript 替换文本)。
  5. 你完成了!