2009-08-13 6 views
0

私は、特定の正規表現に一致するものを見つけるためにすべてのJavaScript変数をループしています。この関数はIE以外のすべてのブラウザで正常に動作しますが、forループはそこにあるにもかかわらずすべてのグローバル変数で読み込まれないようです。私はwindow.variableを使って変数に直接アクセスできますが、ループには現れません。JavaScriptのすべてのウィンドウ[グローバル]変数をループします。 IE互換?

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

あなたのコードのwはウィンドウですか? –

+0

はい。 var w = window。 –

+2

もう少し調査した後、IEのバグだと思われ、その周りには方法がありません。 –

答えて

3

IEでグローバルコンテキストを反復処理することはできません。あなたはできません。 It's an old bug

関連する問題