在多帧web应用程序的一个帧中给定一个小程序,其中所有帧都是从同一个web服务器加载的,那么该小程序如何调用其他帧中的JavaScript方法?我尝试了这样的东西:
jsobject.call("parent.otherFrame.methodToCall", new String[] {"argument"});我收到一个抱怨,说这个函数不存在。但是,如果我像这样调用它:
jsobject.eval("parent.otherFrame.methodToCall('argument')");然后它就起作用了。我在尽量避免使用eval。在与Applet不同的框架中通过call调用代码在每个浏览器和have虚拟机组合中可能具有不同的行为吗?eval是否更安全,因为它是在JavaScript引擎中进行评估的,而不是部分在Applet端进行评估的?
发布于 2011-09-13 11:24:43
没有eval的等效代码可能是这样的:
jsobject = (JSObject)jsobject.getMember("parent");
jsobject = (JSObject)jsobject.getMember("otherFrame");
jsobject.call("methodToCall", new String[] {"hello!"});发布于 2011-09-13 11:08:29
我使用JavaScript、JavaScript和(可怕的)框架组合的(有限的)经验是,最好是:
这有很多优点。
https://stackoverflow.com/questions/7396052
复制相似问题