IE9 javascript嵌套`createElement`失败

时间:2012-09-01 10:51:34

标签: javascript internet-explorer-9

我有2个嵌套with语句,每个语句都有一个createElemet函数,它在IE9以外的每个浏览器中都能正常运行,在IE9中它甚至没有出错,是什么问题?

代码:

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

2 个答案:

答案 0 :(得分:2)

从技术上讲,问题是ie。

中的一个错误

实际上,问题在于您编写错误的代码,创建嵌套的本地范围,因为您可以,而不是因为您需要它 - 因此可维护性和性能受到重创。

答案 1 :(得分:1)

正如我在comment中已经提到的,我找到了一个非常简单的解决方案:
使用window.document.***而不是直接在内部document.***中使用with

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

您还应该考虑重构代码并用其他结构替换with语句。