J'ai trié un cas où le référence est perdu dans diverses méthodes de saut de pages. Il est mentionné que dans IE, lorsqu'une page est redirigée à l'aide d'une méthode comme Location.href = "A.Html", la valeur de Document.Referrer dans la page cible sera vide. Cela devrait être un bug dans IE.
Dans la plupart des cas, ce problème ne nous causera pas de problèmes, mais parfois nous devons utiliser JavaScript pour sauter, et en même temps, nous devons collecter le document.refer à la page suivante, nous devons donc penser à d'autres façons.
Méthode Formulaire
La première chose qui me vient à l'esprit est d'utiliser le formulaire de formulaire pour initier une demande GET en utilisant JS. Le code ressemble à ceci:
La copie de code est la suivante:
fonction gotoPage (url) {
if (isie) {
// IE Browser
var frm = document.CreateElement ("form");
Frm.Action = URL;
frm.Method = "get";
Document.Body.ApendChild (FRM);
Frm.Submit ();
} autre {
// non-ie
location.href = url;
}
}
Cette méthode peut fonctionner comme prévu, et Document.Referrer dans la page cible peut indiquer normalement la page précédente.
Méthode de clic de simulation A-Element
Après avoir cherché en ligne, j'ai trouvé que le blog de Situ Zhengmei a enregistré une autre façon de résoudre ce problème:
La copie de code est la suivante:
// Définir pour tous les navigateurs
fonction goto (url) {
location.href = url;
}
// redéfinir pour IE
if (isie) {
fonction goto (url) {
var ReFORLINK = Document.CreateElement ('A');
ReFORLINK.HREF = URL;
Document.Body.ApendChild (ReFOLINK);
ReFORILINK.CLICK ();
}
}
Le principe est très simple. Créez d'abord un élément A, spécifiez son attribut HREF comme lien cible, puis utilisez JS pour déclencher son événement de clic. Après test, Document.Referrer peut également être récupéré normalement sur la page cible.
Le code de cette méthode est plus court et devrait être meilleur que la solution ci-dessus à l'aide de formulaires de formulaire.