2009-11-02 41 views
0

我试图存储网址,如:如何在变量中存储包含哈希标记的完整url?

http://localhost/pro_print/index.php#page=home

在一个变量

,但我找不到,做一个函数。我发现了很多解决方案来存储index.php,但它不包含哈希标记及其后面的内容。有这个PHP解决方案吗?

我确实发现我可以通过使用document.write(document.url)document.write(location.href)获得包含哈希标记的完整url,但是如何将其存储到我的变量中?有没有什么办法可以像这样的解决方案结合使用PHP和javaScript?

<?php $url ="?><script>document.write(document.url)</script><?php "?> 
+3

你知道php在页面到达你的浏览器之前就已经被解析了,并且javascript开始运行了吗? – Marius 2009-11-02 10:26:39

+0

恩,是的,你似乎有完全混淆了客户端和服务器之间的执行顺序。如果您希望客户端JavaScript将变量发送回服务器上的PHP,则需要查看表单提交或XMLHttpRequest。 – bobince 2009-11-02 10:31:04

回答

3

片段标识符(#及其后出现的所有内容)完全由客户端处理,并且在请求URI时不会发送给服务器。

要使其可用于PHP,你必须:

  1. 允许网页加载
  2. 与JavaScript的阅读位置
  3. 把它寄给你使用了Ajax技术的服务器(例如XMLHttpRequest的)或在后续请求中

这不会在原始脚本运行时使服务器可用,但没有别的可以。

另一种方法是复制URI中其他地方的片段标识符中的信息(例如查询字符串)。提交答案时,本网站会使用它。