Maison > interface Web > js tutoriel > le corps du texte

2 solutions au problème du référent manquant dans JS sautent dans les compétences IE_javascript

WBOY
Libérer: 2016-05-16 16:41:42
original
1407 Les gens l'ont consulté

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 :

Copier le code Le code est le suivant :

fonction goToPage(url) {
Si (estIE) {
// Navigateur IE
        var frm = document.createElement("form");
frm.action = url;
frm.method = "OBTENIR";
            document.body.appendChild(frm);
frm.submit();
} autre {
//Non-IE
emplacement.href = url;
>
>

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 :

Copier le code Le code est le suivant :

//définir pour tous les navigateurs
fonction aller à (url) {
Emplacement.href = url;
>

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!