使用history.pushState()时更新整个location.pathName

时间:2014-10-26 06:22:47

标签: javascript php jquery html html5

我正在创建一个网站,将我的所有内容加载到我的主index.php中。我试图让它使用干净的URLS。

示例:http://www.host.com/home

此URL会将home.php加载到index.php中。我正在使用history.pushstate()更新我的历史记录,但在某些页面上我想要更深入的URL。

示例:http://www.host.com/forum/topicName

这会将论坛页面加载到索引中,并从mySQL获取主题名称并显示它。但是,如果我点击其中一个导航按钮,这里的网址最终会像这样......

示例:http://www.host.com/forum/home

我想要清理那个/论坛,然后离开/ home这里是我的一些代码到目前为止。

function myNav(whereTo)
{   

    window.history.pushState(null, null, whereTo);

    var toLoad = 'pages/'+whereTo+'.php';

    $('#mainContent').load(toLoad);
}

这就是我现在正在使用的快速解决方案,我希望有更好的方法。

if(window.location.pathname.lastIndexOf('/') != 0)
        window.location.pathname = whereTo;
    else
        window.history.pushState(null, null, whereTo);

1 个答案:

答案 0 :(得分:0)

谢谢dandavis。我想在

中添加一个/到URL的开头

window.history.replaceState(stateObj, title, URL);

替换整个pathName,而不是像我一样,只是添加页面名称。