« IE 下“页面无法打开,已终止操作”小窥[备忘] IE 中 table 元素无法使用 innerHTML 属性 »

IE 下“页面无法打开,已终止操作”小窥(2) - 利用 insertBefore 巧妙的避开终止操作

在 IE 下无法在本身未完成结点的父结点上 appendChild 新的结点,否则会造成终止操作的错误。
针对上篇文章的总结出来的思路我想到了,既然不能往后加,我们可以往前插入,接下来就的出使用 insertBefore 来达到 fix 终止操作的错误。
同样的代码:
var p = document.body;
var c = document.createElement("div");
c.innerHTML = "i'm a div element from dom created";
//p.appendChild(c);
p.insertBefore(c, p.lastChild);
在正在完成的结点前插入我们需要插入的结点,这样的 IE 终止操作的错误就被完全 fix 掉了,但是有些小小的不足,DOM 序列因此造成了些许变化,但是这个变化是在我们 coder 的可控范围内,我们完全可以在 document complete 后做一次 swapNode 来使 DOM 的序列还原到我们所期望的状态。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。