在 Firefox 16 中,无法再根据https://bugzilla.mozilla.org/show_bug.cgi?id=748343使用全局实例访问 java 。
我已经构建了一个自定义 selenium-ide.xpi (http://seleniumhq.org/download/),它加载了 java 并通过我的自定义框架运行。为了访问 java,我添加了一个 addJava.js 文件,我将它包含在 selenium-ide-common.xul 文件中,使用类似于https://developer.mozilla.org/en-US/docs/的内容调用 java Java_in_Firefox_Extensions,但是这不再有效。
我尝试了以下方法来解决此问题:
将以下内容添加到各种 .xul 文件中,但每次尝试以下内容时,我都会得到 appletRef 为空:
<div name="appletDiv">
<embed id ="cipherDocsApplet" type="application/x-java-applet;version=1.6" code="java.applet.Applet" pluginspage="http://java.com/download/" MAYSCRIPT="true" width="0" height="0" />
</div>
var appletRef = document.getElementById("cipherDocsApplet");
window.java = appletRef.Packages.java;
下面给了我 java_instance.Packages 未定义。
var java_instance = window.document.createElementNS("http://www.w3.org/1999/xhtml","applet");
java_instance.setAttribute("id", "adsfund_java_instance");
java_instance.setAttribute("code", "java.applet.Applet");
java_instance.setAttribute("width", "0");
java_instance.setAttribute("height", "0");
java_instance.setAttribute("flex", "1");
var div = window.document.createElementNS("http://www.w3.org/1999/xhtml","div");
var elementToAppendTo = window.document.getElementsByTagName("vbox")[0];
elementToAppendTo.appendChild(div);
div.appendChild(java_instance);
var date = new java_instance.Packages.java.util.Date();
最后我尝试了https://bug748343.bugzilla.mozilla.org/attachment.cgi?id=655062,将 app 元素添加到我的主 xul 文件并稍后获取,但这也给了我同样的错误:'TypetError:app .Packages 未定义。
有谁知道如何解决这一问题?
在此先感谢,詹姆斯