J'ai compilé une fois une situation de perte de référent dans diverses méthodes de saut de page, qui mentionnait que dans IE, utilisez une méthode comme location.href = "a.html" pour accéder à la page, 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 posera pas de problèmes, mais parfois nous devons utiliser JavaScript pour sauter et en même temps collecter le document.refer sur la page suivante, nous devons alors penser à d'autres méthodes.
Méthode GET du formulaire
La première chose qui me vient à l'esprit est d'utiliser le formulaire Form et de lancer une requête GET avec JS. Le code est similaire au suivant :
Cette méthode fonctionne comme prévu, document.referrer dans la page cible peut pointer normalement vers la page précédente.
Une méthode de clic de simulation d'élément
Après une recherche en ligne, j'ai trouvé une autre solution à ce problème enregistrée sur le blog de Situ Zhengmei :
//redéfinir pour IE
si (estIE) {
Fonction goto(url) {
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.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 click. Après test, document.referrer peut être obtenu normalement sur la page cible.
Le code de cette méthode est plus court et devrait être meilleur que la solution ci-dessus utilisant le formulaire.