出现“不能执行已释放的Script代码”错误的原因及解决办法


Posted in Javascript onAugust 29, 2007

很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现“不能执行已释放Script的代码”,错误行1,列1.对于这种消息描述不着边,行列描述更是乱写的js错误,相信是所有调试js程序的朋友们最郁闷也最憎恨的事情!遇到这种问题,最简单的办法直接把错误贴到baidu或google那个小输入框中让他们先给点指点,再去解决,可这次却没有这么容易,在baidu搜索似乎很多人都遇到过这种问题,但是都是些什么qq空间错误,狂晕,或者就是只有问没有答的,闷!

   这种错误从何调起?后面没办法,又是猜测又是try...catch蹦错误,找了半天终于找到错误的位置,可是发现写的并没有什么问题,后来绞尽脑汁思考程序的解释过程,确依旧没有什么头绪。继续baidu,突然在某网页中看到一句话:当一个页面关闭时会自动释放页面的js。短短一句话给了我不小的启发。检查我的程序是否有页面的关闭或转向,发现是执行了转向,然后再回到这个页面时出现了错误。突然间觉得明白了。

场景:页面有a和b两个框架页iframe,在b页面中通过js将一个函数引用传入到a页面保存在a页面的一个变量中,a页面可以通过这个引用执行b页面的一些程序,当b页面刷新后由于a页面对b页面的引用已经丢失,但a中仍然保存着b页面之前传过来的引用,但当前的引用已经不能引用到b页面,这样在执行时就会出现“不能执行已经释放的Script代码”

解决办法:在a页面中加上容错处理,当引用出现错误时要将引用清空或指向一个默认的函数。另外在b页面再次载入时要重新给a页面传送函数引用,这样就不会出现这样的错误了。

或许这里的描述有些过于抽象了,看一个演示再看看代码就容易明白了,先test,然后return url,之后再test就会出现这个问题了

Javascript 相关文章推荐
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
innerText和textContent对比及使用介绍
Feb 27 Javascript
javascript中自定义对象的属性方法分享
Jul 12 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
May 17 Javascript
element-ui的回调函数Events的用法详解
Oct 16 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
Jun 11 Javascript
vue-router 控制路由权限的实现
Sep 24 Javascript
vue中axios封装使用的完整教程
Mar 03 Vue.js
推荐一些非常不错的javascript学习资源站点
Aug 29 #Javascript
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 #Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
Aug 29 #Javascript
javascript动画效果类封装代码
Aug 28 #Javascript
Google韩国首页图标动画效果
Aug 26 #Javascript
javascript在一段文字中的光标处插入其他文字
Aug 26 #Javascript
有一段有意思的代码-javascript现实多行信息
Aug 26 #Javascript
You might like
图形数字验证代码
2006/10/09 PHP
一个PHP的String类代码
2010/04/20 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
javascript 动态添加事件代码
2008/11/30 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
js单词形式的运算符
2014/05/06 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
全面了解js中的script标签
2016/07/04 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
详解JS模块导入导出
2017/12/20 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
最新远光软件笔试题面试题内容
2013/11/08 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
Oracle使用别名的好处
2022/04/19 Oracle
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python