例如,我想有我报名,约和联系人页面解析为不同的内容,而是通过哈希标签:以混编网址并将其发送到一个新的URL
三通每一个到报名,联系方式和有关页面 -
- www.site.com/index.php#about
- www.site.com/index.php#registration
- www.site.com/index.php #contact
是否有使用Javascript或PHP将这些页面解析为分隔内容的方法?
例如,我想有我报名,约和联系人页面解析为不同的内容,而是通过哈希标签:以混编网址并将其发送到一个新的URL
三通每一个到报名,联系方式和有关页面 -
是否有使用Javascript或PHP将这些页面解析为分隔内容的方法?
哈希不发送到服务器,所以你只能用Javascript来做。
检查值location.hash
。
您可以使用PHP的全局$ _REQUEST变量抢请求的URL,并解析出井号标签...
我想你可能有一个很好的理由,但我会问,你为什么会这么做?它打破了人们广泛理解的网址哈希应该如何工作的标准,它只是乞求与其他客户端互操作的麻烦。
没有服务器端的方法来做到这一点。你可以使用AJAX,但这会打破非JavaScript用户的网站。最好的办法可能是使用服务器端内容URL(index.php?page=<page_id>
)并使用JavaScript在本地重写这些内容(至#<page_id>
),并处理使用AJAX 然后加载的内容。这样你就可以拥有你的JS-enabled设备的hash-URL,其他人仍然可以使用该站点。
但它需要一点冗余,因为您需要提供两次相同的内容,一次通过AJAX包含,一次通过适当的布局和一切通过PHP。
如果你只是为了美观的原因想要哈希URL,但不想依赖于JS,那么你的运气不好。 URL的语义反对你:片段ID不应该真正影响URL引用的内容,而仅仅是该内容中的片段。 AJAX网址正在改变这些语义,但如果不必这样做,没有什么好的理由去做。
这看起来不错(也感谢Slaks)。我会给它一个旋转,看看我得到了什么。可能要测试一下 - 在任何javascripting中非常生锈。 – Rninja 2009-10-29 19:52:32
错了。散列标签通常不会发送到服务器,而是由用户代理处理。你可能会想到cgi参数,而不是散列(或片段标识符)。 – 2009-10-29 14:03:30
将Hashtags发送到请求中的服务器。在公共社区中称错某人之前,请自行检查。 – 2009-11-02 14:57:14
我很抱歉让你失望,但你错了*:http://httpbin.org/get#wat请注意“url”说的是什么。你在考虑GET参数:http://httpbin.org/get?hashtag=i-think-not--你说的是[$ _REQUEST](http://php.net/manual/en /reserved.variables.request.php)(在这种情况下简单地委托给$ _GET)应该是一个明显的线索。 – 2013-05-06 14:24:27