0

我在互联网上看到了一些这样的工作:

<a href="./someplace.html"> Link </a>

通常它会打开链接或者如果 JS 不活动:

http://www.domain.com/someplace.html

但是当 JS 处于活动状态时,它会像这样打开并将外部页面加载到同一页面而不刷新页面:

http://www.domain.com/#/someplace.html

这怎么可能?有人可以帮忙吗?

我先尝试谷歌它,也搜索这个网站,但没有找到一个好的答案。

4

3 回答 3

3
$("a").click(function() {
    var $this = $(this),
        href = $this.attr("href");

    $(document.body).load(href);

    location.href = "#" + href;
});

有关更多详细信息,请参阅jQuery.fn.load

于 2012-07-22T14:44:24.450 回答
2

您在问题中作为示例提供的内容与hash相关。

哈希是当前文档内部的超链接引用。

当您看到使用链接file.html#name_of_smth时,该页面中的锚点可能看起来像<a name='name_of_smth'>blah</a>.

这不一定是 JavaScript 的东西,如果您使用哈希和名称构造锚点,例如此处的示例,则可以使用它。

如果你想通过 JavaScript 使用它,你需要做的就是修改window.location.hash.

FaceBook 和其他网站现在的做法更好。他们使用 AJAX 将数据重新加载到页面中(如此处的其他答案所示),并使用此处window.history.pushState()的示例通知浏览器新数据属于不同的 url。这会更改地址栏中的 url 而无需重新加载,并允许正确添加书签和重新加载/刷新。

于 2012-07-22T15:32:20.677 回答
0

您可以使用AJAX请求新页面,然后将内容插入当前页面。

在这个问题中写了更多关于这个的细节。

于 2012-07-22T14:42:38.780 回答