1

我正在尝试使用 Java 类触发 JavaScript 中的事件。

如何将 Java 类中的 javascript 代码(直接输入或来自文件)发送到已在浏览器 (Firefox) 中打开的指定目标文件?

目前我正在使用 ScriptEngineManager 来运行我的 JavaScript 代码,但是代码是在我的 Java 环境中执行的,我不知道如何以这种方式触发事件(因为我不能使用例如 window.postMessage("hi", "*");)

任何建议如何解决这个问题?变通办法也受到赞赏(最好没有扩展,插件,...)。

此致。

4

1 回答 1

1

从 java 执行时,您无法访问窗口事件 - 因为没有浏览器。

我不太了解这里的用例,但是您可以将目标文件加载到 iframe 中,然后进行元刷新- 一旦您更新文件内容,那么更新的结果将在下一次刷新时显示。

在任何情况下,您只能将输入的 javascript 函数的结果返回给 java - 而不是调用事件。

您可以将 javascript 函数(模拟事件的调用)传回浏览器,然后执行它。

您如何将其传回给客户取决于具体情况:

  • 它可能是对上传 javascript 的请求的响应
  • 您可以使用元刷新机制
  • 您可以通过客户端轮询来研究ajax样式的方式(如果您不想每次都手动刷新)。

编辑

服务器在请求之间没有到浏览器的链接。要在浏览器中异步接收服务器事件,您可以查看:

因此,当任务完成时浏览器会收到通知,然后它就能做出反应——例如提示关闭选项卡。

于 2012-07-29T15:10:59.160 回答