将Extjs元素渲染到其他帧中

时间:2014-03-10 10:57:08

标签: javascript html iframe extjs

我想在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中?

1 个答案:

答案 0 :(得分:1)

你要做的是错的。因为当你做parent.Ext时, 它将在父范围内执行,而不是在当前范围(iframe)中执行 所以你需要做的是,在iframe中加载ExtJS库,然后执行代码。