我看到一些网站突出显示您使用的搜索引擎关键字,以便访问该页面。 (例如您在Google搜索列表中输入的关键字)
它如何知道您在搜索引擎中输入的关键字?它检查引用者HTTP头或什么?任何可用的脚本可以执行此操作吗?它可能是服务器端或JavaScript,我不确定。
答案 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)
基本上,你......
document.referrer
。拥有包含搜索字词的GET参数的域列表。
var searchEnginesToGetParam = {
'google.com' : 'q',
'bing.com' : 'q'
}
提取相应的GET参数,然后decodeURIComponent()
。