Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不重新加载的情况下动态更改URL?_Javascript_Html_Ajax - Fatal编程技术网

Javascript 如何在不重新加载的情况下动态更改URL?

Javascript 如何在不重新加载的情况下动态更改URL?,javascript,html,ajax,Javascript,Html,Ajax,好的,这就是我想做的(我认为谷歌也主要做这件事): 场景A: 在第/Main\u页中,假设有3个部分。当用户单击节A“链接”时,节A的内容通过AJAX加载并嵌入到页面中 场景B: 当加载/Main\u Page/Section\u A时,我们实际上会转到同一个页面(如场景A)/Main\u Page并通过AJAX加载Section A——与之前一样 问题: 我们有两个相同的结果页面,但URL不同(在第一种情况下,它只是/Main\u Page,而在第二种情况下,它将是/Main\u Page/

好的,这就是我想做的(我认为谷歌也主要做这件事):

场景A:

在第
/Main\u页中,假设有3个部分。当用户单击节A“链接”时,
节A的内容通过AJAX加载并嵌入到页面中

场景B:

当加载
/Main\u Page/Section\u A
时,我们实际上会转到同一个页面(如场景A)
/Main\u Page
并通过AJAX加载
Section A
——与之前一样


问题:

我们有两个相同的结果页面,但URL不同(在第一种情况下,它只是
/Main\u Page
,而在第二种情况下,它将是
/Main\u Page/Section\u A

我想做什么:

  • 在场景A中,在通过AJAX加载
    节A
    之后,我应该如何做才能使出现的URL(在浏览器地址栏中)是
    /Main\u Page/Section\u A
    (或其他相关内容),而无需任何重定向、页面重新加载等

您的问题可以通过实现来解决,特别是通过使用该方法。我推荐。还有一个名为的一体化解决方案,它将帮助您轻松地在x-browser上实现它(如果浏览器不支持它,它将退回到URL哈希
#

下面是一个例子:

history.pushState('', 'New Page Title', newHREF);

不够兴奋?下面是一个鼓励您实施的教程。

我刚刚找到一个教程,它对我很有用

$('a').click(function(){
var value = $(this).attr('id');
window.location.hash = value; // it appends id to url without refresh
});


$(window).bind('hashchange' function() {
    var newhash = window.location.hash.substring(1) // it gets id of clicked element
    // use load function of jquery to do the necessary...
});
我从你那里得到了上面的代码

您正在寻找的,下面是一个示例,您可能正在URL中寻找哈希标记(如)。谷歌有一个很好的关于如何抓取这些页面的教程:这看起来很有希望;我已经开始研究它,它很可能就是我将要使用的(为了让它快速工作,
history.js
方法似乎更可行)。非常感谢,伙计!:-)作为后续行动,只想让你知道:它的工作非常出色!:-)@这是真的。但是给出的关于
history.js
的例子很有魅力——因此,基本上不需要任何其他例子@Jleagle,你说得对:)谢谢你让我知道,我已经用另一个链接更新了链接。@Dr.Kameleon,谢谢你的跟进。很高兴看到像你这样的问题海报。明确的问题、赞赏(不一定是投票/接受)、跟进。