2012-04-05 13 views
1

:のみどのように私はURLから#を削除し、私の残りのページにhttp://myurl.com/categories/postsようにそれを作るのですか jQueryの方法URLから#を削除する

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

IE9

に示して?ありがとう。

このような使い方はできますか? #私のフロントページには#がありません。 #を削除する

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

は/それは本当にjQueryの仕事ではありません述べたケビン・B

+0

履歴を保存する目的で追加していますか?あなたはあなたの設定に関するもう少し背景を提供する必要があるでしょう。 – Chords

+0

はい、どこから削除しますか?私の答えでは、私はアドレスバー、ジョーンズは、ページ内のすべてのリンクを想定して、それはかなり明確ではないと仮定した。 – gotofritz

答えて

6

として.replace(/#\//, "");を使用 - このため、通常のJavascriptを使用しています。

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

EDIT ただ、アンカータグのclickイベントに対して 'falseを返す' を追加完全

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

私は、なぜStringコンストラクタを尋ねるか心配ですか? – NicoSantangelo

+1

レガシー - 古いブラウザーは手元にありませんが、document.location.hrefが文字列ではないと不満を覚えています。 IE5のような古いものかもしれません。 – gotofritz

+0

私はそのようなものになることを誓った:)よく知っておいてよかったです。 – NicoSantangelo

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

ため@Kevin Bの答えを追加します。

$("#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

関連する問題