2009-08-13 7 views
0

J'essaie de boucler toutes les variables JavaScript pour trouver celles qui correspondent à une certaine regex. La fonction fonctionne bien dans tous les navigateurs sauf IE, il semble que la boucle for ne lise pas dans chaque variable globale, même si elle est là. Je peux accéder directement à la variable en utilisant window.variable mais elle n'apparaît pas dans la boucle.Boucle sur toutes les variables de la fenêtre [global] en javascript. IE compatible?

var w = window; 
    var meta = ''; 
    var reg = /meta_(.+)/; 
    var reg_r; 

    for (var k in w){ 
    if (reg_r = reg.exec(k)){ 
     if (typeof(w[k])!="undefined" && typeof(reg_r[1])!="undefined"){ 
      meta += reg_r[1] + '=' + escape(w[k]) + '&'; 
     } 
    } 
    } 
+0

dans votre code w est une fenêtre? –

+0

Oui. var w = fenêtre. –

+2

Après avoir fait d'autres recherches, il semble que c'est un bug dans IE et il n'y a pas moyen de contourner cela. –

Répondre

3

Vous ne pouvez pas itérer le contexte global dans IE. Tu ne peux pas. It's an old bug.

Questions connexes