是否可以使用window.document.getElementById访问Ext JS组件? 那不是使用Ext.getCmp。
答案 0 :(得分:0)
不,你将获得没有ExtJS包装的本机对象。
答案 1 :(得分:0)
通过元素查找Component实际上相当简单;每个Component都有一个主元素,id
属性与Component的id
匹配。所以我们可以这样做:
function findComponentByElement(node) {
var topmost = document.body,
target = node,
cmp;
while (target && target.nodeType === 1 && target !== topmost) {
cmp = Ext.getCmp(target.id);
if (cmp) {
return cmp;
}
target = target.parentNode;
}
return null;
}
var node, cmp;
node = document.getElementById('foo');
cmp = findComponentByElement(node);
如果你有一个Ext.Element实例而不是一个裸HTMLElement,只需传递它的DOM指针:
var el, cmp;
el = Ext.Element.getActiveElement(); // Currently focused element
cmp = findComponentByElement(el.dom);
哦,为了完整起见,这里是如何为HTMLElement获取Ext.Element包装器:
var node, el;
node = document.getElementById('bar');
el = new Ext.Element(node);