重定向/刷新到片段标识符

时间:2009-05-03 20:44:06

标签: jquery fragment-identifier iui

我正在使用iUI框架来创建一个站点。如果你不熟悉这个,你有一个由div组成的页面,你用片段标识符在用户之间导航。

问题在于,如果您的用户添加内容,则在刷新之前它们是不可见的。在我的sistuation中,他们通过jquery帖子将数据添加到列表中,但就像我说他们在刷新之前什么都看不到,一旦你刷新它就会转移到父div,因为#fragment已经丢失了。

所以我在使用window.location = mywebsite.com/#_fragment更新后,设法让页面转到mywebsite.com/#_fragment,但实际上并没有重新加载页面。

任何人都有任何线索有如何刷新页面片段?

2 个答案:

答案 0 :(得分:7)

URI片段标识符仅在客户端,并且不会发送到服务器,即,如果您检查HTTP请求标头,则不会看到#_fragment。此外,对仅修改片段的URI进行更改不会触发任何DOM事件。

虽然有一些变通方法可以使用setInterval()调用来主动监视document.location.hash属性,但最简单的方法是简单地更改查询字符串arg。例如,而不是:

window.location = mywebsite.com/#_fragment

包括一个查询字符串组件,如:

window.location = mywebsite.com/?refresh=1#_fragment

“?refresh = 1”(或任何其他键/值对)的存在将导致浏览器向服务器发出请求,同时保留#hash标识符。

有关JS位置对象的更多信息,请参见此处: http://docs.sun.com/source/816-6408-10/location.htm

答案 1 :(得分:1)

我相信你会使用iUI来构建iPhone友好的网络应用程序。我不确定您是否已经评估iWebkit是否相同。我查看了iUI和iWebkit,发现iWebkit功能更强大,更稳定,更安全。易于实施。