使用jQuery从url中删除#character

时间:2013-12-04 09:05:48

标签: jquery

使用这个jQuery,我可以将我的网站的网址从mysite.com/#oldurl更改为mysite.com/newurl:

$('.trigger').click(function() {
    history.pushState('data', '', 'newurl');
});

我怎样才能做到这样##总是被条带化,剩下的网址就剩下了。所以mysite.com/#page2变成了mysite.com/page2,mysite.com/#page3变成了mysite.com/page3等。

5 个答案:

答案 0 :(得分:3)

你可以使用replace

var newurl=oldurl.replace("#","");

答案 1 :(得分:0)

$('.trigger').click(function() {
 var final_url="";
if(your_url.indexOf('#') != -1)
{
  final_url=your_url.replace('#', '');
}

history.pushState('data', '', final_url);
});

答案 2 :(得分:0)

尝试:

newurl = oldurl.replace(/#/g,"/");

答案 3 :(得分:0)

我可能误解了这个问题,当你说#是当前网址减去哈希时我的想法。

您可以使用a创建一个jQuery window.location元素来构建当前网址。使用此变量来解析当前的url部分。您也可以在使用之前检查pushState是否可用。

if(history.pushState){
    var a = $('<a>', {href: window.location})[0];
    history.pushState(null, null, a.pathname+a.hash.substr(1));
}

答案 4 :(得分:0)

这是我使用“严肃记”的代码:

$('.trigger').click(function() {

    var oldURL = window.location.hash;
//  console.log('newURL ', oldURL);

    var final_url="";
    final_url=oldURL.replace('#', '');
    history.pushState('data', '', final_url);

//  console.log('final_url', final_url);

});