gpt4 book ai didi

java - 无法使用 Liveconnect 将 Java 加载到 Firefox 16 扩展中

转载 作者:行者123 更新时间:2023-12-01 05:02:11 25 4
gpt4 key购买 nike

在 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_in_Firefox_Extensions 中找到的内容调用 java。 ,但这不再有效。

我已尝试以下方法来解决该问题:

将以下内容添加到各个 .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 未定义。”

有人知道如何解决这个问题吗?

提前致谢,詹姆斯

最佳答案

恕我直言,你这样做很艰难。使用 WebDriver(Selenium2 框架的一部分),您可以通过加载自定义 Firefox 配置文件来动态加载 Java .xpi 扩展。

例如:

File file = new File("firebug-1.8.1.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);
firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1");
WebDriver driver = new FirefoxDriver(firefoxProfile);

您提出的问题并不典型,因此我怀疑很多人都能回答您的问题。

此外,如果更高版本的 Firefox 已禁用“LiveConnect”功能,那么您有什么理由尝试通过 JavaScript 注入(inject)来强制不受支持的浏览器支持该功能?

关于java - 无法使用 Liveconnect 将 Java 加载到 Firefox 16 扩展中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com