1

我现在正在使用 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>  

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

4

1 回答 1

1

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

为此,您可以:

1 - 通过在属性中指定它,为您的链接提供一个哈希hrefreturn false;从您的中删除onclick以确保页面 url 更改为#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>
于 2012-09-30T03:41:10.690 回答