2012-04-05 10 views
1

Meine URL erzeugt wie folgt zu entfernen: zeigt nur in ie9jQuery wie # von url

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

, wie ich # von URL entfernen Sie es wie http://myurl.com/categories/posts auf Rest meiner Seiten machen? Vielen Dank.

kann ich so verwenden? Wie kann ich # erkennen, weil die Startseite keine # hat.

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

entfernen #/verwendet .replace(/#\//, ""); wie Kevin B erwähnt

+0

Fügen Sie das für Zwecke der Pflege einer Geschichte? Sie müssen etwas mehr Hintergrundinformationen zu Ihrer Konfiguration bereitstellen. – Chords

+0

Ja, auch wo möchten Sie es entfernen? In meiner Antwort nahm ich die Adressleiste an, in der Jones alle Links auf der Seite vermutete, es ist nicht ganz klar. – gotofritz

Antwort

6

Es ist nicht wirklich ein JQuery Job - für diese normale Javascript verwenden.

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

EDIT Antwort @ Kevin B auf Vollständigkeit Hinzufügen

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

Denk mal nach, warum der String-Konstruktor? – NicoSantangelo

+1

Legacy - Ich habe keine alten Browser zur Hand, aber ich erinnere mich, dass sie sich darüber beschweren, dass document.location.href keine Zeichenfolge ist. Könnte etwas sehr alt wie IE5 sein. – gotofritz

+0

Ich dachte, es wäre so etwas :), gut zu wissen (nehme ich an) – NicoSantangelo

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

einfach auf 'return false' hinzufügen für Click-Ereignis des Anker-Tag.

$("#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 # */ 
}); 

oder sonst

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

oder es nur

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

Dies verhindert, dass die Standard-Aktion einfach machen nicht ausgelöst werden. Detailed info here