小程序是我自己的,调用 ready() 只返回“是”。
首先,我尝试像这样嵌入小程序:
<object id="appletIe"
classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="100%" height="100%"
codebase="MyApplet.jar">
<param name="archive" value="MyApplet.jar" />
<param name="code" value="MyPackage.Myclass" />
<param name="myParam" value="My Param Value" />
<embed id="applet" MAYSCRIPT=true
type="application/x-java-applet;version=1.6"
width="1px" height="1px"
archive="MyApplet.jar"
code="MyPackage.Myclass"
pluginspage="http://java.com/download/">
</object>
我试图通过像这样在 document.ready 上调用 ready() 来检查它是否加载了 javascript:但我立即收到错误(TypeError: $(...).get(...).ready is not a function)所以我假设它在加载之前尝试调用applet ready() 函数。
$(function(){
if (CheckApplet() == false) {
$('#appletStatus').html('Failed to load applet.');
}
});
function CheckApplet() {
return $('#applet').get(0).ready() == 'yes';
}
然后我尝试用 jquery 加载小程序,如下所示:
这工作得更好一些,它在加载小程序之前不会调用小程序的 ready() 函数。但是偶尔它不起作用,javascript变得无响应,即使小程序似乎加载正常也不会产生错误。
$(function(){
var html = '';
if ($.browser.msie) {
html += '<object id="applet" ';
html += 'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ';
html += 'width="100%" height="100%" ';
html += 'codebase="MyApplet.jar"> ';
html += '<param name="archive" value="MyApplet.jar" /> ';
html += '<param name="code" value="MyPackage.Myclass" /> ';
html += '<param name="myParam" value="My Param Value" /> ';
html += '< /object>';
} else {
html += '<embed id="applet"';
html += 'type="application/x-java-applet;version=1.6"';
html += 'width="1px" height="1px" ';
html += 'archive="MyApplet.jar"';
html += 'code="MyPackage.Myclass" ';
html += 'pluginspage="http://java.com/download/"';
html += 'myParam="My Param Value" />';
html += '</embed>';
}
$('#myDiv').append(html);
if (CheckApplet() == false) {
$('#appletStatus').html('Failed to load applet.');
}
});
我正在寻找有关如何改进这一点或其他实现解决方案的方法的建议。