Javascript 我可以使用AJAX加载新内容,但在omnibar中更改URL吗?
我不想使用众所周知的hashbang或shebang。我想像Facebook那样做。单击Profile,该栏保持不变,内容使用AJAX加载。我想知道是否可以使用新的HTML5历史APIJavascript 我可以使用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
编辑:我想我将继续深入研究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是正确的方式--我想我误解了你的问题,这是我的想法。不管怎样,谢谢。我也是这么想的。无论如何,谢谢你。