質問: rel.split(',') ; window.open( url,'popup', 'width='+ split[0] +',height='+ split[1] +',toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes'); return false; }; ### 試したこと popup.jsの挿入位置をの直前に移動したりしてみましたが結果は同じでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) インターネットエクスプローラー11.0.31 windows8.1 2010年にサイトをリリースした際にはエラーは出ていなかったので、その当時だとIEのバージョンはおそらく8か9だと思います。エラーが出始めたのは、おそらくIE10になったタイミングだと思われます。
回答: ### 解決方法 ループの方法が悪いです。 下記コードのように、C言語風のループを使えば、エラーは出ないと思います。 ``` for (var i=0; i > > Array 要素に対して反復処理を行う方法として for...in 文を使用することができますが、これは数値のインデックスに加えてユーザ定義プロパティの名称も返します。そういうわけで、配列に対しての反復処理には、数値のインデックスを使い従来の for ループを使用するほうが良いです。というのも、カスタムプロパティやカスタムメソッドを追加するといった Array オブジェクトの変更を行った場合、for...in 文は配列要素に加えてユーザ定義プロパティに対しても反復処理するからです。 > > > そのため、「`node_a["length"]`はNULLで、そこにclassNameプロパティなんかないよ」と、言われているのでしょう。 IE11にバージョンアップしたらエラーが出たというのは、IE11とその前でfor-inループの仕様が変わったためだと思います。