今天使用Extjs2.2写了一个例子,在IE9下显示不正常,表现为要么页面上完全空白,要么用鼠标拖动窗口时,窗口没办法停下来,一直跟着鼠标跑。在控制台上报这个错误:
错误: 对象不支持“createContextualFragment”属性或方法
经过搜索,发现也有其它人报这个问题。
Extjs2.2版本比较老,那个时候IE9还没出来,而且IE系列总喜欢出点什么奇怪的问题。
图就不截了,这里贴个解决方法。出处见:
https://github.com/netProphET/revolution/commit/f3ec1708965aa82f8f9e824bc6b5b5d054e1193d
代码如下:
if ((typeof Range !== “undefined”) && !Range.prototype.createContextualFragment) {
Range.prototype.createContextualFragment = function(html) { var frag = document.createDocumentFragment(), div = document.createElement("div"); frag.appendChild(div); div.outerHTML = html; return frag; };
}
只要在html页面的最前面把这段代码加上,就一切正常了。