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

时间:2009-05-25 16:23:52

标签: search-engine keyword highlighting dynamic-websites

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

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

3 个答案:

答案 0 :(得分:12)

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

获得推荐人后,您会检查它是否是您了解的搜索引擎结果页,然后解析搜索字词。

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

http://www.google.com/search?hl=en&q=programming+questions

q查询参数是搜索查询,因此您需要将其拉出并取消对其进行网址转义,从而导致:

programming questions

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

现有的库可以为您执行此操作,例如this one

答案 1 :(得分:8)

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

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

答案 2 :(得分:3)

基本上,你......

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

    var searchEnginesToGetParam = {
        'google.com' : 'q',
        'bing.com' : 'q'
    }
    
  3. 提取相应的GET参数,然后decodeURIComponent()

  4. 解析要突出显示术语的文本节点(请参阅Replacing text with JavaScript)。
  5. 你已经完成了!