我在Chrome(和Safari)中遇到了一些哈希問題。我使用散列來存儲搜索字符串並將其更新爲輸入。所以,我只加1分進入到每次搜索歷史,我更換,因爲它的真實鍵入當前歷史記錄條目。*停止Chrome自動完成網址哈希?
location.replace(location.href.slice(0, -location.href.split("#!")[1].length - 2) + searchHash);
這doesn't seem to work in Webkit,但我還是設法解決它與
history.back(1);
setTimeout(function() { location.hash = searchHash; }, 50);
不幸的是,Chrome會根據我的瀏覽記錄經常更改網址。所以,如果我搜索過以前青蛙(/#!search/frog
),現在開始尋找搜身(/#!search/frisking
),Chrome會自動完成有益向/#!search/fr
/#!search/frog
。大多數情況下,對於想要鏈接到特定搜索的用戶來說,這只是令人困惑,但有時候,Chrome會在確定搜索字詞看起來像其他頁面的散列時,啓動了網站的單獨部分。
Chrome自動填充的東西,我鍵入通常是非常有用的,但我只是看不到由JavaScript輸入的自動完成網址的價值。有沒有辦法預防這種情況?我在這裏做錯了什麼?
*我無法使用location.hash作爲Fx decodes it。
更新:如果我刪除history.back(1)
,Chrome不再自動完成散列(J. Steen's answer)。
感謝您的想法。當然,如果有人打字速度慢,它就不起作用,但它可能足夠好。有趣的是,我發現(在嘗試建議的網站之後),如果我刪除history.back(1),那麼Chrome不會自動填充URL,這對我來說似乎是一個錯誤。 – meloncholy 2011-05-13 16:57:17
奇怪。但有一點要記住。 =) – 2011-05-20 09:14:54
我在辦公室呆了幾天,但現在我已經完成了這個任務,直到Chrome(希望)得到修復後,確實看起來確實夠好。 :) 再次感謝! – meloncholy 2011-05-24 15:15:00