首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小程序如何调用不同框架中的方法(来自同一网站)?

小程序如何调用不同框架中的方法(来自同一网站)?
EN

Stack Overflow用户
提问于 2011-09-13 10:03:02
回答 2查看 894关注 0票数 1

在多帧web应用程序的一个帧中给定一个小程序,其中所有帧都是从同一个web服务器加载的,那么该小程序如何调用其他帧中的JavaScript方法?我尝试了这样的东西:

代码语言:javascript
复制
jsobject.call("parent.otherFrame.methodToCall", new String[] {"argument"});

我收到一个抱怨,说这个函数不存在。但是,如果我像这样调用它:

代码语言:javascript
复制
jsobject.eval("parent.otherFrame.methodToCall('argument')");

然后它就起作用了。我在尽量避免使用eval。在与Applet不同的框架中通过call调用代码在每个浏览器和have虚拟机组合中可能具有不同的行为吗?eval是否更安全,因为它是在JavaScript引擎中进行评估的,而不是部分在Applet端进行评估的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-13 11:24:43

没有eval的等效代码可能是这样的:

代码语言:javascript
复制
jsobject = (JSObject)jsobject.getMember("parent");
jsobject = (JSObject)jsobject.getMember("otherFrame");
jsobject.call("methodToCall", new String[] {"hello!"});
票数 1
EN

Stack Overflow用户

发布于 2011-09-13 11:08:29

我使用JavaScript、JavaScript和(可怕的)框架组合的(有限的)经验是,最好是:

  • 在带有小程序的页面/框架中包含一个脚本。定义要用0个或多个参数(其中一个可能是目标框架的名称)调用的函数。
  • 从小程序调用该函数。
  • 让JavaScript做查找正确框架的繁重工作&做任何需要做的事情。

这有很多优点。

  • 使用(例如) FF错误控制台比使用Java控制台更容易调试JS。
  • JS可以更快、更轻松地进行更新。
  • 每种语言都会对其擅长的功能进行编码。您可以进入Java编辑器查看Java的良好格式,也可以进入JS编辑器查看JS的良好格式。与尝试阅读“用Java编写的JS”相反,JS专家可以很容易地阅读!
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7396052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档