我有一个html页面,我在其中定义了一个全局App.vent
主干事件对象。
var App = {};
App.vent = _.extend({}, Backbone.Events);
在该页面中,我有一个iframe,它引用了App
对象。
App = parent.App;
调用App.vent
来触发事件的iframe页面内的代码运行正常。但是如果iframe的src发生了变化,那么App.vent
上的任何方法调用都会失败,IE会给出一个
SCRIPT5011:无法执行已释放脚本中的代码错误。
任何解决方法?
答案 0 :(得分:3)
在以下回答的问题中,已经有一个非常好的例子说明为什么会出现这种情况:
What causes the error “Can't execute code from a freed script”
请特别查看Sjoerd Visscher的this answer,因为它概述了您的问题并显示了解决方法。
最后,确保您跟踪事件绑定并删除对不再存在的iframe内容中包含的函数的任何绑定,这将是更好的形式。这是一个内存泄漏,良好的做法是控制这些事情。