9 Stimmen

URL-Anker im IE lesen

Ich habe eine Seite voller Links zu einer anderen Seite mit Ankern am Ende (z. B. index.html#anchor). Auf der Seite, auf die sie zeigen, habe ich ein Skript, das lesen soll, worauf der Anker zeigt, um etwas anzuzeigen.

Auf Firefox funktioniert es perfekt, aber ich habe bemerkt, dass IE scheint die #anchor aus dem Ende der URL zu entfernen, so dass das Skript den Text nicht greifen kann. Gibt es eine Möglichkeit, dies zu umgehen, ohne Server-seitigen Code?

5voto

wombleton Punkte 8198

Wie wird die Url ermittelt?

window.location.hash sollte den Inhalt des Hashes enthalten .

2voto

David Mills Punkte 2345

Ich habe den folgenden Code in IE 6, 7 und 8 getestet, und in allen Fällen wird die korrekte Raute im Warnfeld angezeigt.

<script type="text/javascript">

    function showHash() {
        var currentUrl = "" + document.location;
        var hash = "";
        var parts = currentUrl.split("#");
        if (parts.length > 1) {
            hash = parts[1];
        }
        alert("the current hash is: " + hash);
    }

</script>

<input type="button" value="Show Hash" onclick="javascript: showHash();" />

Funktioniert dieser Code für Sie?

0voto

Stephen P Punkte 13778

Hat window.location den Anker im IE noch enthalten, oder wurde er auch dort entfernt? Wenn er noch da ist, könnten Sie Folgendes verwenden window.location und auf die Raute aufgeteilt:

var whole = "" + window.location;  // location is object, make sure it's a String
var parts = whole.split('#');
var anchor = parts[1];

0voto

Thorin Oakenshield Punkte 13392

Versuchen Sie es einfach so

    var url = window.location.search.substring(1)
    var arr=url.split("#")
    str=arr[1]

0voto

BBog Punkte 3560

Hier ist eine Funktion, die dabei hilft. Sie gibt null zurück, wenn es keinen Anker gibt. Ich habe sie in einer Util.js platziert, sie ist sehr nützlich :D

function getAnchor() {
    var currentUrl = document.URL,
        urlParts   = currentUrl.split('#');

    return (urlParts.length > 1) ? urlParts[1] : null;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X