jQuery如何从URL中删除#

时间:2012-04-05 21:19:11

标签: javascript jquery

我的网址生成如下:仅显示在ie9

http://myurl.com/#/categories/posts

如何从网址中删除#并在其余网页上将其设为http://myurl.com/categories/posts?感谢。

我可以这样使用吗?如何检测#因为首页没有#。

if ($.browser.msie  && parseInt($.browser.version, 10) === 9 && window.location.href.indexOf("#")) 
    {
        document.location.href = String( document.location.href ).replace( /#/, "" );
    }

删除#/使用.replace( /#\//, "" );,如提到的Kevin B

4 个答案:

答案 0 :(得分:6)

这不是一个真正的JQuery工作 - 为此使用普通的Javascript。

document.location.href = String( document.location.href ).replace( /#/, "" );

修改 添加@Kevin B的完整性答案

document.location.href = String( document.location.href ).replace( "#/", "" );

答案 1 :(得分:4)

只需为锚标记的点击事件添加'return false'。

$("#selectorname").click(function(){
    if ($.browser.msie  && parseInt($.browser.version, 10) === 9 && window.location.href.indexOf("#")) 
    {
        document.location.href = String( document.location.href ).replace( /#/, "" );
    }
    return false; /* This prevents url from # */
});

或者

<a href="#" onclick='return false'>Hey click me, I'm # free</a>

或者只是简单地说明

$("#selectorname").click(function(e){
   /* some statements */
   e.preventDefault();
});

这可以防止不触发默认操作。详细信息here

答案 2 :(得分:1)

$("a").attr("href",$("a").attr("href").replace(/#/, "")); 

答案 3 :(得分:0)

<a href="#" onclick="return false">Hey click me, I'm # free</a>完成了工作。我用它在Bootstrap动态选项卡切换期间隐藏#。谢谢

<ul class="nav nav-tabs">
                            <li class="active"><a data-toggle="tab" href="#i-ab" onclick="return false">ab</a></li>
                            <li><a data-toggle="tab" href="#i-cd" onclick="return false">cd</a></li>
                            <li><a data-toggle="tab" href="#i-ef" onclick="return false">ef</a></li>
                        </ul>