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:
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:
//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.