给定一个多框架Web应用程序中的一个框架中的小程序,其中所有框架均从同一Web服务器加载,那么该小程序如何在其他框架中调用JavaScript方法?我尝试过这样的事情:
jsobject.call("parent.otherFrame.methodToCall", new String[] {"argument"});
并且我抱怨该功能不存在。但是,如果我这样调用它:
jsobject.eval("parent.otherFrame.methodToCall('argument')");
然后就可以了。我试图避免使用
eval
。通过call
在与Applet不同的框架中调用代码是否在每种浏览器和JVM组合中可能具有不同的行为?在JavaScript引擎中评估eval
而不是在Applet方面进行评估是否更安全? 最佳答案
没有eval的等效代码可能是这样的:
jsobject = (JSObject)jsobject.getMember("parent");
jsobject = (JSObject)jsobject.getMember("otherFrame");
jsobject.call("methodToCall", new String[] {"hello!"});
关于java - Applet如何在不同的框架(从同一网站)中调用方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7396052/