Ajax页面加载,刷新页面时消失了

时间:2012-09-30 03:19:13

标签: php javascript ajax

我现在正在使用Ajax,我有这段代码:

<script type="text/javascript">
function load(file,container)
       {
var xmlhttp, newhash = '';

if (window.XMLHttpRequest){  xmlhttp=new XMLHttpRequest();}
if (window.ActiveXObject) {  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

xmlhttp.onreadystatechange= function (){
      if(xmlhttp.readyState==4 && xmlhttp.status==200)
      {  document.getElementById(container).innerHTML=xmlhttp.responseText;
    } else {
        document.getElementById(container).innerHTML='<div style="padding:10px">       <p>Please upgrade your web browser to support modern technology.</p></div>';
        }
    }
xmlhttp.open("GET",file,true);
xmlhttp.send(null);
}
</script>
<script type="text/javascript" src="jquery.js"></script>
<ul>
<li><a href="#" onclick="load('home.php','ajax');return false;">Home</a><li/>
</ul>
       <div id="ajax">



</div>  

很抱歉这是我的第一篇文章,但我真正担心的是,页面可以加载但是当我刷新页面时页面就会消失。我试图在网址上放一个哈希值但是它仍然不起作用。

1 个答案:

答案 0 :(得分:1)

您的内容仅在按钮点击时加载。您需要告诉浏览器根据您的哈希值自动加载*内容。

为此,你可以:

1 - 通过在href attrbiute中指定哈希来为您的链接添加哈希值。从return false;移除onclick以确保页面网址更改为#home

<a href="#home" onclick="load('home.php','ajax');">Home</a>

2 - 添加一个onload处理程序,自动加载哈希中指定的页面。

<body onload="loadHash();">

3 - 编写自动哈希加载器

<script>
function loadHash() {
    var hash = window.location.href.split('#');
    if(hash.length == 2) {
        load(hash[1] + '.php','ajax');
    }
}
</script>