![](/img/trans.png)
[英]How can I change the location.hash of a target window, without reloading the page?
[英]How could I change window's location without reloading and # hack?
起初我認為哈希黑客是一個要求,但從Facebook最近的更新來看,我正在考慮其他方面。
原始哈希黑客(我不確定這是否是正確的術語)是通過更改location.hash,可以在URL中保存狀態而不刷新頁面。 谷歌的應用程序和Facebook以及最近的#NewTwitter廣泛使用它。 然而今天我注意到,如果你使用“現代”瀏覽器(如chrome或firefox),Facebook將不再擁有這個“#”。 我分別使用開發人員工具和firebug檢查了他們沒有重新加載。
使用stackoverflow中的最小搜索,最接近解決方案的是使用Flash - 但是我禁用了Flash,而facebook.com仍然像魅力一樣。 從chrome 8 dev和firefox 4 beta的覆蓋范圍來看,我想知道這可能與HTML5時代的API有關,但Facebook中的代碼不是我調試的能力,以找出他們做了什么。
因為這就像我在這里提出的第一個問題,我想知道你們中是否有人已經解決了這個問題。
多謝你們。
PS無法在IE8上運行,尚未在IE9測試版上測試過。
Facebook正在使用HTML5中的歷史API。 在這篇博客文章中,您可以看到它是如何工作的。 基本上他們正在調用下面的調用來更改URL而不重新加載頁面。
window.history.pushState("object or string", "Title", "/new-url");
以下是關於它的HTML5工作草案規范: http : //www.whatwg.org/specs/web-apps/current-work/multipage/history.html#the-location-interface
遺憾的是,IE9不支持這種api。 新版Chrome和FF完全支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.