0

ネストされたwithステートメントが 2 つあり、それぞれにcreateElemet機能があります。IE9 を除くすべてのブラウザーで正しく実行されます。IE9 ではエラーも発生しません。何が問題なのですか?

コード:

with(block = document.createElement('div')){
    with (detaildiv = document.createElement('div'))
    {
        alert('test');
    }
}
4

2 に答える 2

2

技術的に言えば、問題は ie のバグです。

実際問題は、あなたが悪いコードを書いていて、ネストされたローカル スコープを作成しているということです。必要だからではなく、できるからです。結果として保守性とパフォーマンスに大きな打撃を与えます。

于 2012-09-01T11:07:34.860 に答える
1

コメントで既に述べたように、非常に単純な解決策を見つけました :内部sで直接
使用するwindow.document.***代わりに使用します。document.***with

with(block = document.createElement('div')) { 
    with (detaildiv = window.document.createElement('div')) { 
        alert('test'); 
    } 
} 

また、コードをリファクタリングし、withステートメントを他の構造に置き換えることも検討する必要があります。

于 2012-09-03T21:43:35.790 に答える