如何在URL中的#后访问该值?

时间:2010-01-15 15:11:47

标签: php javascript jquery

  

可能重复:
  How to obtain anchor part of URL after # in php
  Is it possible to access anchors in a querystring via PHP?

我需要找到一种方法来做到这一点,facebook会这样做,所以它必须是可能的......

如果用户在浏览器中转到此URL http://localhost/index.php?photos=p# 12345

然后我可以让我的PHP从mysql加载ID 12345 的照片

如果用户去了
http://localhost/index.php?photos=p# 123456 然后它会加载ID为 123456

的照片

我只需要帮助在之后获取网址中的值,并尽可能使用PHP访问它?如果不可能,那么我可能可以使用jQuery访问它,然后进行AJAX调用以基于此值加载图像。

所以有人知道如何获得这个价值吗?

6 个答案:

答案 0 :(得分:2)

您可以使用

Javascript 中获取哈希值
document.location.hash

答案 1 :(得分:1)

您只能使用Javascript访问此值,因为它永远不会发送到服务器,因此PHP永远不会得到它。正如Kenny所说,您可以使用

访问它
document.location.hash

window.location.hash

但您无法使用PHP访问它。

Facebook实际上是一个非常繁重的Javascript网站。您可能想要在加载页面时立即发送图片/注释数据的AJAX请求。然后当有人按下“下一步”按钮时,你会再做一次请求。

答案 2 :(得分:1)

应用程序执行此操作的方式是使用javascript解析哈希,使用document.location.hash,并使用AJAX或其他客户端技术动态加载图像。这个AJAX调用可以将哈希发布到PHP脚本,该脚本执行任何必要的服务器端处理并返回图像URL或类似的东西。

如果您使用许多浏览器或javascript框架支持的dom:loaded事件,则几乎无缝地发生这种情况。

答案 3 :(得分:0)

这些值(锚点)通常不会被浏览器发送到服务器。所以你不能依赖它们。

答案 4 :(得分:0)

它在JavaScript中可用作window.location.hash。这是dupe of another SO question,有一些答案。

答案 5 :(得分:0)

哈希值后面的值标识文档中的一个点。它不是文档本身的一部分。因此,像“/ path / to / something#section”这样的URL将导致浏览器从服务器请求“/ path / to / something”,然后跳转/滚动到“section”标识的点。

您希望将照片ID构建到网址或查询字符串中:

http://localhost/index.php?photoId=12345