2009-08-13 10 views
0

Ich versuche, alle JavaScript-Variablen zu durchlaufen, um diejenigen zu finden, die einer bestimmten Regex entsprechen. Die Funktion funktioniert in jedem Browser außer IE. Es scheint, dass die for-Schleife nicht in jeder globalen Variable gelesen wird, obwohl sie dort ist. Ich kann direkt auf die Variable mit window.variable zugreifen, aber sie erscheint nicht in der Schleife.Looping über alle Fenster [global] Variablen in Javascript. IE kompatibel?

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

in Ihrem Code w ist ein Fenster? –

+0

Ja. var w = Fenster. –

+2

Nach einigen weiteren Untersuchungen scheint es, dass es ein Fehler im IE ist und es gibt keinen Weg um ihn herum. –

Antwort

3

Sie können den globalen Kontext in IE nicht iterieren. Du kannst einfach nicht. It's an old bug.