在页面完全加载后,如何使用JavaScript在浏览器的地址栏中编写内容?

Los*_*ord 2 javascript client-side

在页面完全加载后,如何使用javascript在浏览器的地址栏中编写一些内容(例如"hello my client")?

意味着在地址栏中写一些东西而不进入 - 是否可能?

看来我们可以用JavaScript完成这项工作,如果没有,我们可以用服务器端代码吗?

Arn*_*anc 11

怎么样?

这是可能的,但只有主机名后的部分:

history.pushState(null, "page 2", '/foo.html');
Run Code Online (Sandbox Code Playgroud)

在你的javascript控制台中尝试这个,这有效地改变了当前的路径/foo.html.(这是一个新的html5功能,仅在最近的浏览器中可用.)

请参阅mozilla文档:https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#Adding_and_modifying_history_entries

浏览器兼容性

为什么?

这用于通过在内容更新时更新URL来使ajax站点历史/书签/链接友好.目前大多数网站只通过更改URL的哈希部分(例如Twitter及其#!.)来实现此目的.

例如,Github将其用于代码浏览器:https://github.com/blog/760-the-tree-slider

  • 因为他们认为这个问题本质上是邪恶的,并且通过联想,任何有效的答案也必须如此. (2认同)