2013-05-19 72 views
0

这会将内容加载到页面并更改URL。问题是后退按钮和前进不会加载内容。他们只更改网址。我怎样才能让他们加载功能?使用Ajax加载的Backbutton内容

<a onclick="load_content('p1');" >Page1</a> 
<a onclick="load_content('p2');" >Page2</a> 



function load_content(name) 
    { 

    window.history.pushState(null, null, "/?page=" + name + ""); 

    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 

     document.getElementById("response").innerHTML=xmlhttp.responseText; 

     } 
     } 
    xmlhttp.open("GET","load_content.php?name=" + name + "",true); 
    xmlhttp.send(); 

    } 

回答

0

history.pushState,保存所有相关的数据是动态的,后来听popState事件,并更换所有的元素,就像你用AJAX做。

+0

你可以发布一些例子我一直试图听popstate,但我找不到这样做的方式,谢谢你的时间! – FriendsList

+0

http://jsfiddle.net/gum9m/1/ – jabbink

+0

但不是从静态数据(链接中的innerHTML)中,将所有动态数据存储在pushState中并将其检索到popState中。 – jabbink