Javascript 操作/更改地址栏链接

Javascript 操作/更改地址栏链接,javascript,url,url-rewriting,address-bar,Javascript,Url,Url Rewriting,Address Bar,我已经失去了我自己的想法 我有一个相册查看器。当您单击“下一步”时,我希望地址栏与它挂起,例如,如果您从?photoid=1开始,然后单击“下一步”(下一张图片附加内容),然后我希望它显示为?photoid=2 现在我不能让它说?photoid=2而不改变/操纵,而这一点你不能没有HTML5 我用HTML5制作了一个脚本,效果很好,但是我需要照顾那些没有HTML5的人(只有chrome、ff4等支持HTML5) 根据此()生成脚本 我想加上#photoid=2,photoid=1#photoid

我已经失去了我自己的想法

我有一个相册查看器。当您单击“下一步”时,我希望地址栏与它挂起,例如,如果您从?photoid=1开始,然后单击“下一步”(下一张图片附加内容),然后我希望它显示为?photoid=2

现在我不能让它说?photoid=2而不改变/操纵,而这一点你不能没有HTML5

我用HTML5制作了一个脚本,效果很好,但是我需要照顾那些没有HTML5的人(只有chrome、ff4等支持HTML5) 根据此()生成脚本

我想加上#photoid=2,photoid=1#photoid=2,然后检查#中是否有任何内容,然后用它代替$#u GET。。但显然你不能这样做,因为#是客户端处理的,从来没有发送到服务器

那我该怎么办呢

有什么建议可以解决这个问题吗?我查看了facebook,他们对IE用户做了什么,我听到它“点击”(IE发出的恼人的点击声)两次。。第一个是进入下一张图片,第二个点击声音改变了地址栏?!(怎么做?)


然后我还想,嘿,html5只在ff4中受支持,我得到了ff3.6,当你浏览相册照片时,他们会操纵地址栏url,就像我想要的那样(以及我写的东西,但它只在Chrome和ff4中工作…?)。他们怎么能做到这一点呢?

我不太确定他们是否完全理解了你的意思,但下面是我对类似问题的看法

为什么不像你说的那样编辑location.hash来设置url,使其看起来像这样:www.mydomain.com/photos/#photoid=2


现在,当有人调用此url时,浏览器将尝试加载www.mydomain.com/photos/,并将获得必要的标记,但不会获得照片,您现在可以做的是读取location.hash(返回photoid=2)并通过AJAX向服务器发送一个类似于“www.mydomain.com/photos/”的路径请求来加载图片+location.hash

哈希是在不自动刷新页面的情况下更改url栏的唯一方法。这就是为什么它在历史上是锚定标记(散列)。其他一切都会告诉浏览器转到其他页面。如果您不希望它转发,请抛出一个散列,然后用javascript读取该散列,并以这种方式执行您想要的操作。使用jQuery很容易,如果您想使用浏览器的后退/前进按钮查看历史状态,也可以深入研究或插入