Ich habe einen Fall aussortiert, in dem Referrer in verschiedenen Seitensprungmethoden verloren geht. Es wird erwähnt, dass in IE, wenn eine Seite unter Verwendung einer Methode wie Standort umgeleitet wird. Dies sollte ein Fehler in IE sein.
In den meisten Fällen wird dieses Problem keine Probleme verursachen, aber manchmal müssen wir JavaScript zum Springen verwenden, und gleichzeitig müssen wir Dokument auf der nächsten Seite sammeln, also müssen wir uns über andere Möglichkeiten nachdenken.
Form
Das erste, was mir in den Sinn kommt, ist, Formularformular zu verwenden, um eine Get -Anfrage mit JS zu initiieren. Der Code sieht so aus:
Die Codekopie lautet wie folgt:
Funktion Gotopage (URL) {
if (isie) {
// dh Browser
var frm = document.createelement ("Form");
Frm.Action = URL;
Frm.Method = "Get";
document.body.appendchild (frm);
Frm.submit ();
} anders {
// nicht ie
location.href = url;
}
}
Diese Methode kann wie erwartet funktionieren und document.referrer auf der Zielseite kann normalerweise auf die vorherige Seite hinweisen.
A-Element-Simulations-Klick-Methode
Nachdem ich online gesucht hatte, stellte ich fest, dass der Blog von situ zhengmei eine andere Möglichkeit aufzeichnete, um mit diesem Problem umzugehen:
Die Codekopie lautet wie folgt:
// für alle Browser definieren
Funktion goto (url) {
location.href = url;
}
// Definieren Sie neu für dh
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 verwenden Sie dann JS, um das Klickereignis auszulösen. Nach dem Testen kann Dokument.Referrer auch normal auf der Zielseite abgerufen werden.
Der Code dieser Methode ist kürzer und sollte besser als die obige Lösung unter Verwendung von Formularformularen sein.