Heim  >  Artikel  >  Web-Frontend  >  2 Lösungen für das Problem fehlender Referrer im JS-Sprung in IE_javascript-Kenntnissen

2 Lösungen für das Problem fehlender Referrer im JS-Sprung in IE_javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:41:421408Durchsuche

Ich habe einmal eine Referrer-Verlustsituation in verschiedenen Seitensprungmethoden zusammengestellt, in der erwähnt wurde, dass im IE eine Methode wie location.href = "a.html" verwendet wird, um zur Seite zu springen, der Wert von document.referrer auf der Zielseite ist leer. Dies sollte ein Fehler im IE sein.

In den meisten Fällen wird uns dieses Problem keine Probleme bereiten, aber manchmal müssen wir JavaScript verwenden, um zu springen und gleichzeitig document.refer auf der nächsten Seite zu sammeln, dann müssen wir über andere Methoden nachdenken.

GET-Methode bilden

Das erste, was mir in den Sinn kommt, ist, das Formular Formular zu verwenden und eine GET-Anfrage mit JS zu initiieren. Der Code ähnelt dem folgenden:

Code kopieren Der Code lautet wie folgt:

Funktion goToPage(url) {
Wenn (isIE) {
// IE-Browser
        var frm = document.createElement("form");
frm.action = url;
frm.method = "GET";
            document.body.appendChild(frm);
frm.submit();
} sonst {
//Nicht-IE
location.href = url;
}
}

Diese Methode funktioniert wie erwartet, document.referrer in der Zielseite kann normal auf die vorherige Seite verweisen.

Eine Elementsimulations-Klickmethode

Nachdem ich online gesucht habe, habe ich eine andere Lösung für dieses Problem gefunden, die im Blog von Situ Zhengmei aufgezeichnet ist:

Code kopieren Der Code lautet wie folgt:

//Für alle Browser definieren
Funktion goto(url) {
Location.href = url;
}

//für IE neu definieren
if (isIE) {
Funktion goto(url) {
      var referLink = document.createElement('a');
         referLink.href = url;
           document.body.appendChild(referLink);
        referLink.click();
}
}

Das Prinzip ist sehr einfach. Erstellen Sie zunächst ein A-Element, geben Sie sein href-Attribut als Ziellink an und lösen Sie dann sein Klickereignis mit JS aus. Nach dem Testen kann document.referrer normal auf der Zielseite abgerufen werden.

Der Code dieser Methode ist kürzer und sollte besser sein als die obige Lösung mit Formular.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn