簡體   English   中英

如何在不重新加載和#hack的情況下更改窗口的位置?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM