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.
现有的库可以为您执行此操作,就像这样.
小智 8
意识到这一点可能为时已晚,无法发挥作用......
拜托,求求你 - 找出如何做到这一点,然后永远不要做.作为一个网络用户,当我遇到一个自动执行此操作的网站时,我发现它非常烦人(并且分散注意力).大多数情况下,它最终会突出显示页面上的每个其他单词.如果我需要帮助在页面中找到某个单词,我的浏览器有一个更合适的"查找"功能,我可以随意使用或不使用,而不是必须重新加载整个页面才能让它去当我不想要它时(这是绝大多数时间).
基本上,你...
document.referrer。获取包含搜索词的 GET 参数的域列表。
var searchEnginesToGetParam = {
'google.com' : 'q',
'bing.com' : 'q'
}
Run Code Online (Sandbox Code Playgroud)提取适当的 GET 参数,然后decodeURIComponent()就可以了。