楼上的,我没有重写系统方法,我在一个页面里用
<script type="text/javascript" src="aa.js"></script>引用了一个脚本文件,在这个文件中调用另外一个iframe里的函数是可以的,但是在页面本身中调用不成功,aa中有一个取值函数,由iframe调用,将其window对象赋值到aa中,如果赋值的不是window对象,而直接将函数赋值过来,在aa中同样正确,但是在页面本身中,提示那个错误,如果alert赋值过来的函数,是一个object,而不是其代码,
<script type="text/javascript" src="aa.js"></script>引用了一个脚本文件,在这个文件中调用另外一个iframe里的函数是可以的,但是在页面本身中调用不成功,aa中有一个取值函数,由iframe调用,将其window对象赋值到aa中,如果赋值的不是window对象,而直接将函数赋值过来,在aa中同样正确,但是在页面本身中,提示那个错误,如果alert赋值过来的函数,是一个object,而不是其代码,
解决方案 »
- 为什么下拉框的第一个是已经selected的
- 在iframe 页面中 如何获取浏览器地址栏中的URL
- 求救:提示某一行“拒绝访问”,但查看源代码没有那一行怎么办
- 请教 jQuery属性选择器 的问题
- 如何 用js 得到 TreeView 选定节点的值
- 请教用正则表达式去除数字和Xx外的字符
- javscript dom问题
- highchart 的 column 能否在顶端显示数值
- 关于传递参数
- 关于一个视觉很好的效果,鼠标从盒子哪个方向进入 遮罩从哪个方向出来。离开也是一样
- JavaScript在火狐瀏覽器下不支持問題,由A頁面選中checkbox後,點按鈕到B頁面,然後再回到A頁面,A頁面之前選種的checkbox,在火狐下不再選中.在IE下仍是被選中的
- 引用外部JS文件出现问题....
我要实现的目的就是跨iframe调用,但是无论是使用全局变量传值,还是直接使用parent.frames[i].window.functionName(),都无法调用另外一个iframe的函数
这种错误从何调起?后面没办法,又是猜测又是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就会出现这个问题了。
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/11311.htm