Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2011, 10h31   #1
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Par défaut Fonctionne sous IE7, mais pas sous IE8 -> Pourquoi ?

Bonjour,

J'ai un script de tracking adsense qui permet de reprérer les IFRAME et ensuite d'y détecter des portions de codes. Ce script fonctionne très bien sous IE7, mais pas du tout sous IE8. Et je ne sais pas pourquoi !

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function adsense_init() {
 if (document.all) {  //ie
   var el = document.getElementsByTagName('iframe');
var elem=null; // temporaire
var i=0;
var il=el.length;
for(i=0;i<il;i++)
{
elem=el[i];
 
     if (
	 (elem.src.indexOf('googlesyndication.com') > -1) ||
	 (elem.src.indexOf('googleadservices') > -1) ||
	 (elem.src.indexOf('doubleclick.net') > -1)
	 ) {
		 document.write('IE8 OK');
       elem.onfocus = trackAdsense;
     } // fin du if
   } // fin de la boucle for
 
 } else {   // firefox   // fin du if document.all
          window.addEventListener('beforeunload', doPageExit, false);
          window.addEventListener('mousemove', getMouse, true);   
         }      
}
Je vous remercie par avance de l'aide que vous voudrez bien m'apporter !
winnies_ird est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 11h42   #2
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par winnies_ird Voir le message
Ce script fonctionne très bien sous IE7, mais pas du tout sous IE8. Et je ne sais pas pourquoi !
Quel est le problème rencontré ?
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 12h10   #3
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Par défaut TEST

Bonjour,

Et bien en fait, lorsque j'utilise IE7 et que j'ai des pub adsense sur la page de mon script, il fait bien la detection :

Code :
(elem.src.indexOf('doubleclick.net') > -1
Et donc il m'affiche bien :

Code :
"IE8 OK" grâce à la ligne : document.write('IE8 OK');
Par contre, lorsque j'utilise IE8, dans les même condition, il ne m'affiche pas "IE8 OK", mais je ne sais pas pourquoi !

Est-ce la condition qui pose problème :
Code :
(elem.src.indexOf('doubleclick.net') > -1
Est-ce l'element qui ne va pas :
Code :
var el = document.getElementsByTagName('iframe');
Je n'arrive pas à connaitre le problème !

Auriez-vous la réponse ou pouvez-vous me proposer de faire un levé de doute en affichant le contenu de EL (mais je ne sais pas faire car c'est un tableau).

Je vous en remercie par avance.
winnies_ird est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 13h48   #4
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par winnies_ird Voir le message
Et donc il m'affiche bien :

"IE8 OK" grâce à la ligne : document.write('IE8 OK');
Avant toute chose, ça ne me parait pas judicieux de tester de cette manière, déjà parce que c'est toujours* une mauvaise idée d'utiliser cette vieille instruction dangereuse et peu fiable (document.write ), mais aussi parce que tu introduis d'autres causes possibles de différence de comportement... j'aurais plutot mis un alert ^^ mais bon bref ce n'est pas directement l'objet de ta question...

Citation:
Envoyé par winnies_ird Voir le message
Par contre, lorsque j'utilise IE8, ...
... j'ai des outils de développement à ma disposition qui permettraient de résoudre ce problème plus facilement que sous les vieilles versions d'IE Il y a un débuggeur intégré dans le 8 pour suivre l'exécution de ce bout de code et connaître précisément le contenu des variables, etc. ^^ débugger, quoi

Citation:
Envoyé par winnies_ird Voir le message
Auriez-vous la réponse ou pouvez-vous me proposer de faire un levé de doute en affichant le contenu de EL (mais je ne sais pas faire car c'est un tableau).
suffit amplement pour des tableaux de taille "raisonnable" car alert attend une chaine et va invoquer automatiquement toString sur le tableau pour afficher son contenu. Pour des contenus très volumineux ou des tableaux imbriqués, il vaut mieux s'écrire une petite version perso de toString et l'invoquer avant affichage dans l'alert ^^

* par honnêteté, il faudrait dire "presque toujours", mais c'est tellement rare... on ne va pas refaire ce vieux dossier
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h59.


 
 
 
 
Partenaires

Hébergement Web