具体而言。我正在制作一个ajax应用程序并尝试保留后退按钮。我的javascript工作正常并在地址栏中注册了一个新网址,并在网址中添加了类似锚点的哈希:
http://t2b.localhost/#/clients/
当页面加载javascript并加载“客户端”页面时,我可以捕获网址,但我想知道是否有办法用php或htaccess读取整个网址?看看正常的变量,我似乎只能得到“#”(http://t2b.localhost/)出现的网址。
答案 0 :(得分:4)
浏览器不会向网址发送片段(#后面的文字)部分网址。 它旨在由客户在本地使用。
在firefox中(以及在资源管理器中)还有document.location.hash,它包含URL的片段部分。如果您使用javascript,您可以阅读它并将其值发送到公共变量。
答案 1 :(得分:1)
请使用任何可用的JavaScript库来跟踪历史记录状态或按ajax请求进行浏览。涉及的问题很多,例如某些浏览器在哈希部分更改时没有通知脚本,或者没有向浏览器的历史列表等添加伪“导航”事件,您最终会重新创建一个昂贵的轮子。工作得很好。我推荐YUI的历史库,尽管它在谷歌浏览器上存在问题。
答案 2 :(得分:0)
我很确定你不能用PHP严格解析它,因为哈希部分只在客户端解析(Javascript)。
对于历史,我推荐Ben Alman的BBQ plugin。
请参阅:Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?
答案 3 :(得分:0)
您可以使用javascript并将cookie设置为当前URL,然后使用PHP
获取它