Java <--> JS applet communication problem with Firefox
I know that there is some discussion out there in regards to this, but
I haven't been able to solve this problem: calling a function within
the applet from JavaScript code.
**Applet**:
<!--[if !IE]> Firefox and others will use outer object -->
<object classid="java:com.company.test.TheApplet.class"
codebase="http://localhost:8080/test/classes/"
name="theApplet" id="theApplet"
type="application/x-java-applet"
archive="../applet/jdom.jar, ../applet/plugin.jar, ..."
height="300" width="450" >
<param name="archive" value="../applet/jdom.jar,
.../applet/plugin.jar, ..." />
<param name="codebase" value="http://localhost:8080/test/classes/"
/>
<param name="MAYSCRIPT" value="true" />
<param name="scriptable" value="false" />
<!--<![endif]-->
<!-- MSIE (Microsoft Internet Explorer) will use inner object -->
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
name="theAppletIE" id="theAppletIE"
codebase="http://java.sun.com/update/1.4.1/jinstall-1_4_1-windows-i586.cab"
height="300" width="450" >
<param name="code" value="com.company.test.TheApplet" />
<param name="archive" value="../applet/jdom.jar,
.../applet/plugin.jar, ..." />
<param name="codebase" value="http://localhost:8080/test/classes/" />
<param name = "mayscript" value = "true"/>
<param name = "scriptable" value = "false"/>
<strong>This browser does not have a Java Plug-in.<br /><a
href="http://java.sun.com/products/plugin/downloads/index.html">Get the
latest Java Plug-in here.</a></strong>
</object>
<!--[if !IE]> close outer object -->
</object>
<!--<![endif]-->
**JavaScript**:
function loadAppletWithWait() {
if (_isIE) appletObject = document.getElementById("theAppletIE");
else appletObject = document.theApplet; //OR
document.getElementById("theApplet");
if (appletObject == null || appletObject == undefined) {
setTimeout("loadAppletWithWait()", 2000);
} else {
appletObject.setupApplet("http://localhost:8080", "another param");
}
}
This, like most other postings of similar discussion, will work in IE,
but not Firefox. What happens is that it will get the object of the
applet loaded into "appletObject". But when it gets to the function
call (appletObject.setupApplet(...);) it will say
"appletObject.setupApplet is not a function."
Also, the Applet code uses JSObject to allow communication with the JS
code.
If anyone might have an idea why this is, all help would be
appreciated.
Thanks in advance, Andy