出现“不能执行已释放的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 相关文章推荐
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
jQuery遍历json的方法分析
Apr 16 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
微信小程序跨页面传递data数据方法解析
Dec 13 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 Javascript
es5 类与es6中class的区别小结
Nov 09 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
jquery div 居中技巧应用介绍
2012/11/24 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
详解参数传递四种形式
2015/07/21 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
Django中的CBV和FBV示例介绍
2018/02/25 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
关于python 跨域处理方式详解
2020/03/28 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
公司管理制度范本
2015/08/03 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby