有两种方法可以在两个applet之间进行通信。我没有接受代码。只是提到方法, - 使用Javascript - 静态变量 - Singleton对象 - RMI
同一Applet上下文中的两个applet可以轻松地进行通信。不幸的是,没有记录确定两个applet是否在同一个上下文中。实现可能会出现令人惊讶的事情,特别是在处理错误或耗尽的资源条件时。
通常,您应该使用LiveConnect返回浏览器进行通信,正如Matthew Flaschen的回答。
您可以进一步向原始服务器通信。即使小程序是从不同的主机下载的,也可以在两个来源之间建立通信路径。 HTTP或非常好的HTTPS应该是与服务器通信的可靠方式。
是。你可以使用cookies,详见 这个以前的答案 。
是。如果它们位于同一页面上且来自同一域,则可以实现applet间通信。您必须首先使用属性“name = value”命名页面中的applet,如:
<applet code="FirstApplet.class" name="firstApplet" width=nn height=nn></applet> <applet code="SecondApplet.class" name="secondApplet" width=nn height=nn></applet>
如上所述,在FirstApplet.java中,使用以下命令访问SecondApplet:
SecondApplet secondApplet = (SecondApplet)getAppletContext().getApplet("secondApplet"); //invoke a method on secondApplet here
同样,您可以访问SecondApplet.java中的FirstApplet
两个不受信任的小程序不应该能够通信。唯一的例外是它们是从同一个网站发布的。这将允许他们使用对该站点的HTTP请求进行通信,或者(如@Matthew所述)通过在本地cookie存储中设置和读取cookie来进行通信。