Tho*_*ney 16 javascript ajax jquery html5
我目前正在编写一个复杂的AJAX应用程序,整个站点都有干净的URL.目前,PHP为每个页面创建了基本布局,但是当用户点击链接时,我不想离开每个页面,而且我不希望在URL中有哈希,因为它赢了"与网站的其他部分相适应.我知道这在网站之前已经出现了负载并且似乎很常见,但我想知道是否有一种简洁的HTML5方式只是在地址栏中出现更改URL,即使它在技术上保持相同页.
Til*_*zer 43
您可以使用它history.pushState
,但仅限于支持它的浏览器.只需在浏览器JavaScript-Console中尝试以下行.
history.pushState({},"URL Rewrite Example","https://stackoverflow.com/example")
Run Code Online (Sandbox Code Playgroud)
更多关于pushState()方法的内容(Mozilla Developer)
类似的问题如何使用JavaScript在不加载新页面的情况下更改浏览器中的URL?
正如其他人所说,HTML5的history.pushstate是必经之路。尝试浏览github上的存储库以查看其运行情况(https://github.com/visionmedia/express)。
麻烦是IE支持历史记录的唯一版本。推送状态是IE10,有点烂。
许多网站都使用hashbang#!URL,例如Twitter(例如https://twitter.com/#!/Sironfoot)。hashbang是搜索引擎同意的URL模式,以便它们仍可以拖网并索引由Ajax驱动的强大网站(更多信息,请参见http://code.google.com/web/ajaxcrawling/docs/specification.html),因此你可以走那条路。
唯一的其他方法是对支持它的浏览器使用history.pushstate,对不支持的浏览器使用全页刷新。
归档时间: |
|
查看次数: |
19701 次 |
最近记录: |