从url中删除锚点 - 将字符串添加到url - 并再次在末尾附加锚点

时间:2013-12-12 18:12:03

标签: javascript jquery url anchor

我正在搜索转换以下网址的jquery解决方案:

http://www.mysite.com/longpage.html#title3

http://www.mysite.com/longpage.html?var=1#title3

简单地添加“?var = 1”就没问题了。但是只有当它放在URL的末尾时,锚才有效。

4 个答案:

答案 0 :(得分:3)

根据您在问题中描述的内容,一个简单的替换就可以解决问题:

"http://www.mysite.com/longpage.html#title3".replace(/(#.+?)$/, '?var=1$1')

这只是简单的JS,因为这就是所需要的。

答案 1 :(得分:1)

尝试:

var href = window.location.href;
if(href.indexOf("#") > 0){
    href = href.split("#")[0] + "?var=1#" + href.split("#")[1];
    window.location.href = href;
}

DEMO here.

答案 2 :(得分:1)

例如

var urlParts = location.href.split("#");;
var newUrl = urlParts[0]+"?var="+someVar+(urlParts.length>1?"#"+urlParts[1]:"");

答案 3 :(得分:0)

谢谢大家。

我们实施了另一个建议的解决方案:

var url = $(this).attr('href'); 
var pos = url.indexOf('#');
if (pos != -1) {
        var newurl = url.substr(0,pos);
        var fragment = url.substr(pos, url.length - pos); 
}
else {
        var newurl = url;
        var fragment = ''; 
}

$(this).attr('href', newurl + '?var=1' + fragment);