window.history.replaceState()无法正常工作

时间:2011-02-02 22:04:12

标签: javascript html5

有没有办法用JavaScript替换url而无需重新加载?例如

www.url.com/index.php/presenter/view/../ 

www.url.com/presenter/view/../ 

?我用history.replaceState函数尝试了它,但它只是在index.php之后更改了网址。

function parseUrl(){
    currUrl = window.location.href;
    verify = currUrl.indexOf("index.php");
    if(verify != -1){
        newUrl = currUrl.substring(0,verify-1);
        newUrl += '#'+currUrl.substring(currUrl.indexOf('index.php')+10,currUrl.length);
        if(window.history.replaceState){
            window.history.replaceState(null, this.title, newUrl);
        }
        else{
            window.location.href = newUrl;
        }
    }

}    

3 个答案:

答案 0 :(得分:4)

尝试使用History.js - 也许它对HTML5历史记录API的跨浏览器支持将解决您的问题。

答案 1 :(得分:1)

HTML5 History API可以执行此操作,但大多数浏览器(仅限FF4和Chrome AFAIK)不支持

GitHub正在将它用于Tree Slider

答案 2 :(得分:0)

  1. 更改应用程序的文件系统位置,以便它反映您想要的网址:www.url.com/presenter/view /

  2. 使用index.html shell

  3. 将您的网络服务器配置为默认打开index.html

  4. 使用ajax抓取您的数据并将其插入您的html文件。