出现“不能执行已释放的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 相关文章推荐
实现连缀调用的map方法(prototype)
Aug 05 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
jquery 之 $().hover(func1, funct2)使用方法
Jun 14 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
javascript中clone对象详解
Dec 03 Javascript
node.js中的fs.exists方法使用说明
Dec 17 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
Aug 17 Javascript
javascript滚轮事件基础实例讲解(37)
Feb 14 Javascript
JavaScript事件处理程序详解
Sep 19 Javascript
Vue.js用法详解
Nov 13 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
推荐一些非常不错的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
微信企业转账之入口类分装php代码
2018/10/01 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
利用js对象弹出一个层
2008/03/26 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python中的内置函数getattr()介绍及示例
2014/07/20 Python
python实现在目录中查找指定文件的方法
2014/11/11 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python是否适合网页编程详解
2019/10/04 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
银行会计职员个人的自我评价
2013/09/29 职场文书
校园文明标语
2014/06/13 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python