除非这是 HTML 5,当 AJAX 加载额外的页面时,我可以轻松地使用 History.pushState() 来操作 URL,否则我发现处理在 URL 地址栏中使用哈希标记注册的页面很不方便。
例如,加载页面 item1.html。用户单击下一个项目 - item2.html 页面使用 AJAX 加载。地址在浏览器中更改为 item1.html#item2.html。
现在,当用户将此 URL 发送给 friend 或为其添加书签时,我想确保 item2.html 已加载。
方法 1) JavaScript 将 URL item1.html#item2.html 重定向到 item2.html。缺点:item1.html 加载完毕后会在重定向前闪烁一秒。
方法2)加载item1.html并隐藏item1内容,然后使用Ajax请求加载item2.html。缺点:item1 内容仍然可见(除非我将其隐藏为可见性无,这可能对 SE 不利)
更好的方法?一定有一个我缺少的很好的解决方案,许多大网站都实现了。
最佳答案
不要将 # 部分视为文件的 URL。这是页面所处的逻辑状态。
对你来说,我认为这意味着有一个 page.html,它本身可能没有真正的内容。然后你有 page.html#item1 和 page.html#item2 等。 url 总是一致的。您永远不会真正直接导航到 item1.html 或 item2.html。
关于javascript - 处理 AJAX 站点的哈希 URL 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014052/