在 IE8 中访问 iframe Object.prototype
Access to iframe Object.prototype in IE8
我在页面上有一个 iframe 元素,我需要为 iframe 中的对象创建一些原型方法。
我有 iframe window
var win = iframe.contentWindow || iframe.contentDocument.defaultView;
然后尝试创建方法。在 FF、Chrome 和 IE9+ 中很简单:
win.Object.prototype.func = myFunc;
但它在 IE8 中不起作用。我在 win.Object 中未定义。
同时 win.Element 完美运行。
如何在 IE8 中获取 iframe 对象?
您可以在 iframe
中插入一个 script
元素,这会在外部 window 中创建一个指向内部 Object
的全局变量:
var doc = iframe.contentDocument,
s = doc.createElement('script');
s.text = "parent.Object2 = Object;";
doc.appendChild(s);
doc.removeChild(s);
然后,您可以使用Object2.prototype
。
好吧,这很简单。
足以在 iframe 中创建空脚本 - 并且对象(如 win.Object、win.Element 等)在 IE 中可用。
我在页面上有一个 iframe 元素,我需要为 iframe 中的对象创建一些原型方法。
我有 iframe window
var win = iframe.contentWindow || iframe.contentDocument.defaultView;
然后尝试创建方法。在 FF、Chrome 和 IE9+ 中很简单:
win.Object.prototype.func = myFunc;
但它在 IE8 中不起作用。我在 win.Object 中未定义。 同时 win.Element 完美运行。
如何在 IE8 中获取 iframe 对象?
您可以在 iframe
中插入一个 script
元素,这会在外部 window 中创建一个指向内部 Object
的全局变量:
var doc = iframe.contentDocument,
s = doc.createElement('script');
s.text = "parent.Object2 = Object;";
doc.appendChild(s);
doc.removeChild(s);
然后,您可以使用Object2.prototype
。
好吧,这很简单。 足以在 iframe 中创建空脚本 - 并且对象(如 win.Object、win.Element 等)在 IE 中可用。