1

我对 Web 开发比较陌生,所以这可能是一个奇怪的问题。我希望我的网站的一部分加载一个新页面。但重要的部分不需要改变。我现在要做的是将内容加载到 div 中。

$('#rightdiv').load("about.html");

这样做的缺点是地址不会改变,我相信有一个很好的解决方案,但我不知道如何。我试过用谷歌搜索它,但我找不到任何好的东西。所以我很想看到一个解决方案以及这个解决方案是如何被调用的(希望你知道我的意思)。

感谢您的时间和精力。

4

4 回答 4

1

标准方法是使用location.hash. 因此,例如,如果您打开mysite.com/并加载了about.html页面,您可以将哈希设置为#about. 这不会导致页面重新加载,但会更改 URL(以提供书签/后退按钮支持)。

例如,使用成功回调load()

$('#rightdiv').load('about.html', function() {
    location.hash = 'about';
});

HTML5 添加了一个名为pushState. 这允许对 URL 进行更完整的修改,而不会导致页面重新加载。在此处阅读更多相关信息。

于 2013-07-31T16:22:20.470 回答
1

支持 HTML5 的浏览器pushState将允许您更改路径:

$('#rightdiv').load("about.html", function pushState(){
    if(history && history.pushState){
        history.pushState('','','about.html');
    }
});
于 2013-07-31T16:26:59.817 回答
0

这可以通过利用 HTML5 及其功能轻松实现。
Myspace 的功能与您所要求的类似。HTML5 History API 在不刷新页面的情况下更改浏览器 URL。将其与 JQuery $.ajax 结合可以产生在 myspace、github 和 facebook 中显示的效果。“arundavid”在tinywall.info的这个链接上有很好的解释

于 2013-07-31T16:24:57.040 回答
-1

这是将数据加载到div使用 AJAX 的正确方法。我个人更喜欢使用该jQuery.ajax()功能。

于 2013-07-31T16:22:29.593 回答