Ajax加载页面更改URL

时间:2012-05-14 13:58:03

标签: javascript ajax

我正在编写以下代码来加载页面的一部分:

function load(b)
{
var xmlHttp;
try
{   
    xmlHttp=new XMLHttpRequest();
}
catch (e)
{
    try
    {
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch (e)
    {
        try
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            alert("No AJAX!?");
            return false;
        }
    }
}

xmlHttp.open("GET",b,true);
xmlHttp.onreadystatechange=function(){
if( this.readyState == 4 )
{
    document.getElementById('main').innerHTML=xmlHttp.responseText;
}
}

    xmlHttp.send(null); 
}

//调用代码的HTML是:

<a href="#" onclick="load('reg.php')">Item 3.1.1</a>

它有正确的结果。但是在url中它来自:localhost / corpo /#

而我期待:localhost / corpo / reg.php

2 个答案:

答案 0 :(得分:0)

<a>元素中的超链接指向'#',所以一切都很好。

在HTML5之前,您只能从JavaScript处理url的哈希部分,因此无法实现您的期望。

随着HTML5的到来,它是可行的。请查看此链接:http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page或任何goole所说的内容,例如“html5 url change”

答案 1 :(得分:0)

使用<span>

例如:

 <span onClick="load('reg.php');">hello</span>