我已經看到一些網站突出顯示您使用的搜索引擎關鍵字,以達到頁面。 (例如您在Google搜索列表中鍵入的關鍵字)網站如何突出顯示您在搜索引擎中使用的搜索字詞?
它如何知道您在搜索引擎中輸入的關鍵字?它檢查引用HTTP頭或其他東西嗎?任何可用的腳本都可以做到這一點?它可能是服務器端或JavaScript,我不確定。
我已經看到一些網站突出顯示您使用的搜索引擎關鍵字,以達到頁面。 (例如您在Google搜索列表中鍵入的關鍵字)網站如何突出顯示您在搜索引擎中使用的搜索字詞?
它如何知道您在搜索引擎中輸入的關鍵字?它檢查引用HTTP頭或其他東西嗎?任何可用的腳本都可以做到這一點?它可能是服務器端或JavaScript,我不確定。
這可以在服務器端或客戶端完成。搜索關鍵字是通過查看HTTP Referer(sic)頭來確定的。在JavaScript中,你可以看看document.referrer
。
一旦你有了引用者,你就檢查它是否是你知道的搜索引擎結果頁,然後解析出搜索條件。
例如,谷歌的搜索結果中有一個看起來像這樣的網址:
http://www.google.com/search?hl=en&q=programming+questions
的q
查詢參數的搜索查詢,所以你想拉了這一點,並取消URL-逃避它,導致:
programming questions
然後,您可以搜索頁面上的條款並在必要時突出顯示它們。如果你正在做這個服務器端 - 你在發送給客戶端之前修改了HTML。如果你在做客戶端,你會操縱DOM。
有一些現成的庫可以爲你做這件事,比如this one。
意識到這可能是來不及做出任何區別...
拜託,我求求你 - 找出如何做到這一點,然後從未做到這一點。作爲一個網絡用戶,當我遇到一個自動完成此操作的網站時,我發現它非常惱人(並且分散注意力)。大多數情況下,它最終會突出顯示頁面上的所有其他字詞。如果我需要幫助在頁面中找到某個單詞,我的瀏覽器會有一個更合適的「查找」功能,我可以隨意使用或不使用它,而不必重新加載整個頁面以便使用它當我不想要它的時候(這是廣闊的大部分時間)。
基本上,你...
document.referrer
。有一個GET域參數列表,其中包含搜索條件。
var searchEnginesToGetParam = {
'google.com' : 'q',
'bing.com' : 'q'
}
提取相應的GET PARAM和decodeURIComponent()
它。
這個答案遺漏的是引用者通常不可靠。並非所有瀏覽器和配置都會發送引薦者(基本上出於隱私/安全原因)。 – SpliFF 2009-05-25 16:49:50
是的,的確如此,但是由於突出顯示搜索詞只是爲了方便,所以這不是什麼大問題。如果你沒有找到推薦人,你只是沒有任何要強調的地方。 – 2009-05-25 17:01:18