Extjs4 和 IE8 :选项卡上的 beforeclose 事件抛出'cannot execute code from freed script'



>我有一个问题,让我对带有选项卡面板的extjs4和IE8感到疯狂。

当我关闭另一个选项卡以处理修改时,我必须刷新特定选项卡。我使用"beforeclose"事件来触发刷新。在FF上没关系。但是对于IE8(我的应用程序的目标),我有一个"无法从释放的脚本执行代码"。

有人可以帮助我吗?

这是代码:

var activeTab = getTabPanel().getActiveTab(); // getTabPanel() give me the tab panel
activeTab.on('beforeclose', function(tab, opts) {
    alert("refresh !!!!");
    tab.refreshTab('order_'+id); // refreshTab(id) search the tab with the id identifier and refresh the contents
}

警报没有显示,所以我认为无法处理侦听器。

编辑:我使用iframe作为选项卡面板的内容。

我终于找到了错误在哪里。

此代码在 beforeclose 事件上附加一个侦听器,侦听器由父窗口调用。如果我刷新 iframe(通过提交表单或使用"刷新"操作),该事件仍附加到父窗口,但回调函数已从内存中消失。使用 Firefox,回调成功调用两次,但 IE 会抛出"无法从释放的脚本执行代码"错误。

为了解决这个问题,我在 beforeunload 事件上附加了一个调用以分离侦听器。

相关内容

最新更新