0

我有一个 Extjs 4 应用程序作为 iframe 在另一个 Web 应用程序(用 Javascript 编写)中运行。我想以某种方式在外部触发一个事件并在框架中捕获它。也就是说,我想效仿

 this.application.fireEvent('myevent', myparams);

我目前有一个解决方法。在我的外部应用程序中,我可以执行以下操作...

var w = document.getElementById('myIFRAME').contentWindow;
if (w) {
    w._myFunctionInExtjs(myParam);
}

...它调用在我的 Ext 代码中声明的全局函数。不过,如果通过 Ext 事件完成会更干净,因此感谢您提供任何帮助。

4

2 回答 2

0

没有简单的方法可以做到这一点。使用您的解决方法是我能想到的最佳选择。

于 2012-04-27T12:15:14.050 回答
0

我最终使用了我的解决方法并创建了一个全局函数。它所做的一切都会触发 Ext 事件。

//  global function that is used for triggering Ext events 
function _appFireEvent(eventName, objParam) {
    _extApp.fireEvent(eventName, objParam);    
}

现在,从我的外部站点,我可以调用它并告诉它我想要引发哪个事件:

var w = document.getElementById('myIFRAME').contentWindow;
if (w) w._appFireEvent('mycustomevent', myparam);

希望这可以帮助某人。

于 2012-04-30T19:21:18.350 回答