php - 有什么方法可以在不重新加载的情况下更改 header URL?

标签 php javascript jquery html

Possible Duplicate:
Modify the URL without reloading the page
Updating address bar with new URL without hash or reloading the page

我的网站完全基于 Ajax 请求,网站内的简单导航仅通过一个页面完成。这意味着当用户单击菜单项时,它不会加载另一个页面,而是加载 HTML 元素内的内容。但是,当用户想要将页面链接到他们的 friend 时,它总是相同的,因为 http://mysite.com/mymainpage.php无论 ajax 拉出什么,都将始终相同。如何修改用户标题?例如,当他们点击“游戏”时,jquery/js/php/html 可以更改浏览器上当前的 URL 地址栏吗?使其变为 http://mysite.com/mymainpage.php?games=true 。然后,用户只需从地址栏中复制站点 URL,它将引导至 Ajax 加载的正确部分。

最佳答案

您可以使用哈希值:

(这就是 gmail 的作用: https://mail.google.com/mail/#inboxhttps://mail.google.com/mail/#sent )

您可以使用读取哈希值

window.location.hash /* gives "#games" */

window.location.hash.substring(1) /* gives "games" */

您可以使用以下方法更改它

window.location.hash="#games"

window.location.hash="games"

(看起来可行,但最好使用第一个选项)

然后,每次用户单击链接时,都会更改哈希值并像现在一样加载新页面。

当用户进入您的页面时,检查 URL 中是否有哈希并加载该页面。

您还可以添加 hashchange 事件监听器。请参阅https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/hashchange

编辑:

不,您不能有两个哈希值 ( http://mysite.com/mymainpage.php#games#fashion )

因此,如果用户访问 http://mysite.com/mymainpage.php?games=true ,您应该将他重定向到 http://mysite.com/mymainpage.php#games .

然后你可以将其更改为 http://mysite.com/mymainpage.php#fashion无需重新加载。

关于php - 有什么方法可以在不重新加载的情况下更改 header URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236266/

相关文章:

javascript - 如何从 iframe 中将元素附加到 head 标签中?

javascript - onload 脚本在 JSF 的 subview 页面中不起作用

javascript - 使用 .slideUp 的函数没有动画

javascript - jQuery 滚动和 anchor 初始位置

javascript - 使用 JQuery 更改 YouTube iframe src

php - 将 HTML 实体放入 MySQL 数据库时对其进行解码

php - 防止 json_encode 将空字符串编码为 null

php - Facebook : You are not logged in: You are not logged in. 请登录后重试

php - mysql_close() : supplied argument is not a valid MySQL-Link

javascript - 通过生成的 id 显示隐藏图像