Javascript 我可以使用AJAX加载新内容,但在omnibar中更改URL吗?

Javascript 我可以使用AJAX加载新内容,但在omnibar中更改URL吗?,javascript,ajax,facebook,html,Javascript,Ajax,Facebook,Html,我不想使用众所周知的hashbang或shebang。我想像Facebook那样做。单击Profile,该栏保持不变,内容使用AJAX加载。我想知道是否可以使用新的HTML5历史API 编辑:我想我将继续深入研究HTML5的历史API。保持问题的开放性,以防有人有更好的建议。你不需要这样做。您可以阻止默认操作发生。例如,对于jQuery,我们有 function(event) { event.preventDefault(); // this is different from even

我不想使用众所周知的hashbang或shebang。我想像Facebook那样做。单击Profile,该栏保持不变,内容使用AJAX加载。我想知道是否可以使用新的HTML5历史API


编辑:我想我将继续深入研究HTML5的历史API。保持问题的开放性,以防有人有更好的建议。

你不需要这样做。您可以阻止默认操作发生。例如,对于jQuery,我们有

function(event) {
  event.preventDefault();
  // this is different from event.stopPropogation()
  // do some stuff
}
这将防止链接的默认操作(在url之后)发生


另外,我一直听说shebang特别提到这一点:
#,不仅仅是
#
,而且我可能会被误导…

你不需要这么做。您可以阻止默认操作发生。例如,对于jQuery,我们有

function(event) {
  event.preventDefault();
  // this is different from event.stopPropogation()
  // do some stuff
}
这将防止链接的默认操作(在url之后)发生


另外,我一直听说shebang特别提到这一点:
#
,不仅仅是
#
,而且我可能会被误传…

也看看也看看HTML5历史API是正确的选择

请看这里:


pushState和replaceState方法将允许您在不发出HTTP请求的情况下更改URL。区别在于pushState将新状态推送到历史堆栈上,而replaceState将替换堆栈顶部的项。

HTML5历史API是正确的选择

请看这里:


pushState和replaceState方法将允许您在不发出HTTP请求的情况下更改URL。不同之处在于pushState将新状态推送到历史堆栈上,而replaceState将替换堆栈顶部的项。

是的,shebang(又名hashbang)是
#。URL中使用的
#
只是一个散列。我知道我可以阻止默认操作。但是,单击默认操作被阻止的链接不会更改URL。我希望人们能够在当前状态下共享页面链接,并加载AJAX内容。例如,我在foo.com上。我单击home,使用AJAX加载内容,但URL没有更改,因为我阻止了它的更改。我希望人们在URL栏中看到foo.com/home或类似的内容,即使我实际上没有更改URL。在这种情况下,pushState是正确的方式--我想我误解了你的问题是的,shebang(又名hashbang)是
#。URL中使用的
#
只是一个散列。我知道我可以阻止默认操作。但是,单击默认操作被阻止的链接不会更改URL。我希望人们能够在当前状态下共享页面链接,并加载AJAX内容。例如,我在foo.com上。我单击home,使用AJAX加载内容,但URL没有更改,因为我阻止了它的更改。我希望人们在URL栏中看到foo.com/home或类似的内容,即使我实际上没有更改URL。在这种情况下,pushState是正确的方式--我想我误解了你的问题,这是我的想法。不管怎样,谢谢。我也是这么想的。无论如何,谢谢你。