我有2个嵌套with
语句,每个语句都有一个createElemet
函数,它在IE9以外的每个浏览器中都能正常运行,在IE9中它甚至没有出错,是什么问题?
代码:
with(block = document.createElement('div')){
with (detaildiv = document.createElement('div'))
{
alert('test');
}
}
答案 0 :(得分:2)
从技术上讲,问题是ie。
中的一个错误实际上,问题在于您编写错误的代码,创建嵌套的本地范围,因为您可以,而不是因为您需要它 - 因此可维护性和性能受到重创。
答案 1 :(得分:1)
正如我在comment中已经提到的,我找到了一个非常简单的解决方案:
使用window.document.***
而不是直接在内部document.***
中使用with
:
with(block = document.createElement('div')) {
with (detaildiv = window.document.createElement('div')) {
alert('test');
}
}
您还应该考虑重构代码并用其他结构替换with
语句。