>我有一个问题,让我对带有选项卡面板的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 事件上附加了一个调用以分离侦听器。