0

当我想最小化一个 extjs 窗口时,它在 IE8 中不起作用。所有其他浏览器都很好。我得到的错误是指向其中的一行:

iframe.dom.hasOwnProperty

这是不适用于IE8的东西吗?

还有

iframe.dom.contentWindow.parentLostFocus();

IE 中的错误只是说:对象不支持对象。不确定问题可能是什么。任何人的想法?

这是重点

iframe = Ext.get('iframe_{0}'.sprintf(item.itemId));
if(!iframe.dom.hasOwnProperty('contentWindow')) {
  return;
}

if(iframe !== null && iframe.dom && iframe.dom.contentWindow && iframe.dom.contentWindow.parentGotFocus) {
  context.trace('calling parentGotFocus in iframe {0}'.sprintf(item.itemId));
  iframe.dom.contentWindow.parentGotFocus();
} else {
  context.trace('function parentGotFocus not found in iframe {0}'.sprintf(item.itemId));
}
},
4

1 回答 1

6

IE8 及更低版本不支持hasOwnProperty()DOM 元素。如果iframe.dom是 DOM Node 对象,那么 IE8 会抛出错误"Object does not support property or method"。为避免错误尝试替换:

iframe.dom.hasOwnProperty("property name");

和:

Object.prototype.hasOwnProperty.call(iframe.dom,"property name");
于 2012-08-30T12:41:11.083 回答