Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止Chrome自动完成URL哈希?_Javascript_Url_Google Chrome_Hash_Autocomplete - Fatal编程技术网

Javascript 停止Chrome自动完成URL哈希?

Javascript 停止Chrome自动完成URL哈希?,javascript,url,google-chrome,hash,autocomplete,Javascript,Url,Google Chrome,Hash,Autocomplete,我在Chrome(和Safari)中遇到一些哈希问题。我正在使用散列存储搜索字符串,并在输入时更新它。所以每次搜索我只在历史记录中添加一个条目,在输入当前历史记录条目时替换它* location.replace(location.href.slice(0, -location.href.split("#!")[1].length - 2) + searchHash); 这一点,但我还是设法解决了 history.back(1); setTimeout(function () { locatio

我在Chrome(和Safari)中遇到一些哈希问题。我正在使用散列存储搜索字符串,并在输入时更新它。所以每次搜索我只在历史记录中添加一个条目,在输入当前历史记录条目时替换它*

location.replace(location.href.slice(0, -location.href.split("#!")[1].length - 2) + searchHash);
这一点,但我还是设法解决了

history.back(1);
setTimeout(function () { location.hash = searchHash; }, 50);
不幸的是,Chrome经常会根据我的浏览历史更改URL本身。所以,如果我以前搜索过青蛙(
/#!search/frog
),现在开始搜索搜身(
/#!search/frisking
),Chrome会自动完成!搜索/fr至
/#!搜索/frog
。大多数情况下,这只是让那些想链接到某个特定搜索的人感到困惑,但有时Chrome会在确定搜索词看起来像其他页面的散列时启动网站的一个单独部分

我键入的Chrome自动完成功能通常非常有用,但我看不到JavaScript输入的自动完成URL的价值。有没有办法防止这种情况发生?我做错什么了吗

*我无法将location.hash用作


更新:如果我删除
历史。返回(1)
,Chrome将不再自动完成哈希()。

我在几家网站上看到过这种技术的实施,在输入中使用延迟,以便仅在用户停止键入500毫秒后更新位置。这样,只有一个历史条目。同时,页面和搜索结果会随着用户的键入而立即更新,例如ajax


是一个利用这一策略的瑞典网站。

谢谢你的想法。当然,如果有人打字很慢,这是行不通的,但这可能已经足够好了。有趣的是,我发现(在尝试了你推荐的网站之后),如果我删除历史记录,Chrome不会自动完成URL。back(1)-对我来说似乎是个bug。奇怪。但是要记住一些事情我离开办公室几天了,但我现在已经这样做了,在Chrome(希望)修复之前,它确实看起来足够好了再次感谢!