我想在iframe中渲染Ext元素。
在加载到iframe的页面中,我有一个div元素:
<div id="panel"></div>
当加载iframe时,我想将Ext面板渲染到这个div元素中。
因此加载到iframe的页面得到了一个在加载时执行的函数:
console.log(parent.Ext.get("panel"));
console.log(document.getElementById("panel"));
console.log(new parent.Ext.dom.Element(document.getElementById("panel")));
parent.Ext.create('Ext.Panel',{
layout : 'fit',
height : 200,
width : 600,
autoScroll: false,
renderTo : new parent.Ext.dom.Element(document.getElementById("panel"))
});
控制台消息如下:
null VM14143:10
<div id="panel">…</div> VM14143:11
D {el: D, dom: div#panel, id: "panel", $cache: Object, self: function…} VM14143:12
TypeError: Cannot read property 'dom' of null
无论我将哪三个console.log放入renderTo:renderTo: parent.Ext.get("panel")
或renderTo: document.getElementById("panel")
或renderTo: new parent.Ext.dom.Element(document.getElementById("panel"))
,都会发生TypeError,但是当我删除{{}时,它不会发生1}}行完全。
现在,如何将面板渲染到我的div中?
答案 0 :(得分:1)
你要做的是错的。因为当你做parent.Ext时, 它将在父范围内执行,而不是在当前范围(iframe)中执行 所以你需要做的是,在iframe中加载ExtJS库,然后执行代码。