很多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页面某函数的指针(内存地址),当b页面刷新或重定向后由于b页面重新构建,所以b页面中的函数指针就发生了变化,但a中仍然保存着b页面刷新前传过来的指针(内存地址),这时a页面中变量通过所指向的指针地址就无法访问到b页面中对应的函数了(因为函数指针地址已经发生了变化,及原来的内存指针已经释放),这样在执行时就会出现“不能执行已经释放的Script代码”的错误。
解决办法:在a页面中加上容错处理,当引用出现错误时要将保存的引用(函数指针)清空或指向一个默认的函数。另外在b页面再次载入时要重新给a页面传送函数引用,这样就不会出现这样的错误了。
或许这里的描述有些过于抽象了,看一个演示再看看代码就容易明白了,先test,然后return url,之后再test就会出现这个问题了。
演示页面: attachment/200708/1187167689_0.html
解决方法:
在 按 return url 的事件程序之前加入
doOK = function(){alert('good');};document.getElementById('ifrm').src='t2.html'
这样就恢复了doOK函数指向的不存在的指针。有问题回复。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/feng_sundy/archive/2008/07/29/2733172.aspx
分享到:
相关推荐
一、开源项目 Javascript .NET ...示例代码: 代码如下:using Noesis.Javascript; using System; using System.Collections.Generic; namespace JsCSharp { class Program { static void Main(string
基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的...
但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所述。 放置于<head></head>之间 将 JavaScript 代码放置于 HTML 文档的 <head></head> 标签之间是一个通常的做法。...
Java执行JavaScript代码.pdf
遇到上述错误情况时,JavaScript引擎会抛出一个错误对象,我们可以利用try…catch语句来捕获错误对象,进而进行后续处理,我们刚才的代码稍作改动。 6.5.1 错误处理 示例 改进后的代码运行时,错误仍然发生了,但是...
JS Beauty 是一款 Javascript 美化工具,它具有美化,净化,压缩和解压缩 Javascript 代码等功能: 1. 美化:将混乱的 Javascript 代码格式化为优美的带缩进的格式,适合阅读和修改。 2. 净化:去掉 Javascript ...
通过MOZILLA的javascript引擎(SpiderMonkey)执行js代码
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
主要介绍了ThinkPHP控制器里javascript代码不能执行的解决方法,采用ThinkPHP的标签来解决javascript标签被解析的问题,是非常实用的技巧,需要的朋友可以参考下
javascript语言参考,script全集javascript语言参考,script全集javascript语言参考,script全集javascript语言参考,script全集javascript语言参考,script全集
vc 程序源代码 执行JavaScript文件中代码,带源代码和编译后可执行程序
本篇文章主要是对javascript页面加载完执行事件的代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
js-meter是一种测量JavaScript代码的执行时间,CPU,RAM和堆的性能工具
NULL 博文链接:https://relive123-yahoo-com-cn.iteye.com/blog/784700
javascript 经典代码大全 17.屏蔽功能键Shift,Alt,Ctrl <script> function look(){ if(event.shiftKey) alert("禁止按Shift键!"; //可以换成ALT CTRL } document.onkeydown=look; </script> 18. 网页不会被...
详解JavaScript中的执行上下文及调用堆栈 目录 一、执行上下文是什么二、执行上下文栈是什么三、执行上下文栈的过程细节(一)创建阶段(二)执行阶段 一、执行上下文是什么 二、执行上下文栈是什么 三、执行...
javascript代码-使用代码解决fnErrorFlash(args) - 错误闪烁背景色提示.jq的源代码 ——学习参考资料:仅用于个人学习使用!
JavaScript代码生成器——Coffee Script.pdf
一个简单的js代码混洗工具,配合我写的小程序就能一本万利,简单而又不失华丽的搞定代码混淆这道小工序!
IE javascript 脚本视角解决办法