问题描述
最近遇到一个问题,需要在两个iframe之间相互调用,最原始的做法是获取iframe对象.currentWindow.对象的方式来调用,但是这样怕纯在对象引用导致iframe内存销毁的问题。而且没办法封装成一个通用的方法(因为用户调用的实现不一致)。看到operamasks上面有iframe组件,研究了一下他的iframe之间调用对象的方式,发现是通过eval方法来实现,即先获取调用对象所在的iframe对象,然后通过iframe对象.eval(“需要执行的调用语句”),但是考虑到eval会存在性能问题,所以又犹豫了。希望大家给点意见!说说自己的想法!
解决方案
不建议通过对象来调用,改为函数调用。IFRAME内部高内聚,将可能的调用封装为有限的几个函数;IFRAME之间低耦合,通过这几个函数来调用。这样EVAL时的性能问题应该降低。如果两个IFRAME联系很紧密,建议你重新实现,将两个IFRAME里面的东西放在一个页面里。
解决方案二:
IFRAME a ba中调用bparent.b.nodeName;b中调用a 同上
时间: 2024-09-18 00:14:07