您可以在 Internet Explorer 中执行的操作是将小程序加载到页面中,该页面公开了执行您想要执行的操作的方法。您获得对小程序的引用,然后在该引用上调用方法。
<applet id="myAppletId" name="myAppletName" ...>
var applet = document.getElementById('myAppletId');
var d = applet.getDateFromApplet();
在您的小程序中,您需要一个getDateFromApplet()
返回java.util.Date
.
请注意,我所展示的内容应该可以工作,但是我这样做已经有好几年了(当时它在 NS4、6 和 IE 4+ 中工作)。不过我没用过getElementById()
,我用过var applet = document.myAppletName;
。
另一个复杂的情况是,如果您希望它在页面加载时执行,小程序几乎肯定不会准备好,这需要类似以下的代码:
function checkApplets() {
var da = document.applets; // document.getElementsByName('applet');?
if (da.length > 0) {
for (var ii = da.length; ii-- > 0;) {
if (!da[ii].isActive()) {
window.timerId = setTimeout(checkApplets, 250);
return;
}
}
if (window.timerId) {
clearTimeout(window.timerId);
}
}
window.appletsLoaded = true;
}
最后,它可能(应该)可以使用<object>
标签来做到这一点,但正如我所说,我需要从客户端 JavaScript 以这种方式与 Java 小程序交互已经有好几年了,所以我还没有测试它.