【问题标题】:How can I load a URL without reloading the current page?如何在不重新加载当前页面的情况下加载 URL?
【发布时间】:2012-07-22 14:39:45
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:
    $("a").click(function() {
        var $this = $(this),
            href = $this.attr("href");
    
        $(document.body).load(href);
    
        location.href = "#" + href;
    });
    

    更多详情请见jQuery.fn.load

    【讨论】:

      【解决方案2】:

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

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

      当您看到使用file.html#name_of_smth 的链接时,该页面中的锚点很可能类似于&lt;a name='name_of_smth'&gt;blah&lt;/a&gt;

      这不一定是 JavaScript 的东西,如果你用哈希和名称构造锚点,例如 here,就可以使用它。

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

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

      【讨论】:

        【解决方案3】:

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

        this question 中写了有关此的更多详细信息。

        【讨论】:

          猜你喜欢
          • 2020-04-20
          • 2020-12-29
          • 2019-03-02
          • 2012-02-23
          • 2020-10-04
          • 2020-06-27
          • 2020-09-18
          • 2011-11-02
          相关资源
          最近更新 更多