给定一个多框架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/

10-09 02:03