【发布时间】:2019-08-28 00:28:03
【问题描述】:
我看到一些网站突出显示您使用的搜索引擎关键字,以访问该页面。 (例如您在 Google 搜索列表中输入的关键字)
它如何知道您在搜索引擎中输入了哪些关键字?它是否检查引用者 HTTP 标头或其他内容?任何可用的脚本可以做到这一点?它可能是服务器端或 JavaScript,我不确定。
【问题讨论】:
标签: search-engine highlight keyword
我看到一些网站突出显示您使用的搜索引擎关键字,以访问该页面。 (例如您在 Google 搜索列表中输入的关键字)
它如何知道您在搜索引擎中输入了哪些关键字?它是否检查引用者 HTTP 标头或其他内容?任何可用的脚本可以做到这一点?它可能是服务器端或 JavaScript,我不确定。
【问题讨论】:
标签: search-engine highlight keyword
这可以在服务器端或客户端完成。搜索关键字是通过查看 HTTP Referer (sic) 标头来确定的。在 JavaScript 中你可以查看document.referrer。
一旦有了引荐来源网址,您就可以检查它是否是您知道的搜索引擎结果页面,然后解析出搜索词。
例如,Google 的搜索结果中的 URL 如下所示:
http://www.google.com/search?hl=en&q=programming+questions
q 查询参数是搜索查询,因此您需要将其拉出并取消 URL 转义,结果是:
programming questions
然后,您可以搜索页面上的术语并根据需要突出显示它们。如果你在做这个服务器端,你会在将 HTML 发送到客户端之前修改它。如果您在客户端执行此操作,您将操作 DOM。
现有的库可以为您执行此操作,例如 this one。
【讨论】:
意识到这一点可能为时已晚,无法产生任何影响......
拜托,我求求你——找出如何做到这一点,然后永远不要这样做。作为一名网络用户,当我遇到一个自动执行此操作的网站时,我发现它非常烦人(并且分散注意力)。大多数情况下,它只会突出显示页面上的所有其他单词。如果我需要帮助在页面中查找某个单词,我的浏览器内置了一个更合适的“查找”功能,我可以随意使用或不使用它,而不必重新加载整个页面才能让它运行当我不想要它时离开(这是绝大多数大部分时间)。
【讨论】:
基本上,你...
document.referrer。有一个域列表来获取包含搜索词的参数。
var searchEnginesToGetParam = {
'google.com' : 'q',
'bing.com' : 'q'
}
提取适当的 GET 参数,然后decodeURIComponent()它。
【讨论】: