1

我正在使用 Javafx 和 FXML 。我已经创建了我的表单。在我的一个页面中,我在左窗格 (Split Pane) 中有一个树,而右侧的痛苦是右侧锚窗格内的 Web 视图。

当我在树 (treeItem) 上选择一个节点时,webview 将相应地更改为在树视图中选择的相应站点。

当我将它作为应用程序运行时,它会起作用(就像一个魅力)。

但是,在浏览器 (即 chrome、firefox 和 safari(mac))中查看此内容时,我看不到 web 视图,它保持空白。即 UI 将加载并且树将在那里,但正确的 jand pain 永远不会显示嵌入的视图。

当我作为 webstart 运行时,我看到了正确的视图。嵌入到 Web 视图中的网页有一个登录,当我尝试登录时,网页闪烁,比如刷新并且登录表单为空白,我必须再次输入凭据。

不知道出了什么问题或如何调试浏览器/webstart 端。

4

1 回答 1

2

在浏览器(即 chrome、firefox 和 safari(mac))中查看此内容时,我看不到 web 视图,它保持空白。即 UI 将加载并且树将在那里,但正确的 jand pain 永远不会显示嵌入的视图。

如果您还没有这样做,您将需要签署您的应用程序以允许它在浏览器嵌入式 Java 应用程序沙箱之外运行,以便 webview 的网络层有权访问外部位置。

还要监视 webview loadworker 的异常属性以查看是否遇到异常或 FAILED 状态:

Worker worker = webview.getEngine().getLoadWorker();
worker.stateProperty().addListener(new ChangeListener<Worker.State>() {
  @Override public void changed(ObservableValue<? extends Worker.State> observableValue, Worker.State oldState, Worker.State newState) {
    System.out.println("Browser state change: " + newState);
  }
});
worker.exceptionProperty().addListener(new ChangeListener<Throwable>() {
  @Override public void changed(ObservableValue<? extends Throwable> observableValue, Throwable oldThrowable, Throwable newThrowable) {
    System.out.println("Browser encountered a load exception: " + newThrowable);
  }
});

不知道出了什么问题或如何调试浏览器/webstart 端。

有一篇关于webstart/浏览器嵌入式应用程序调试步骤的优秀 Oracle 文章。该文章提供了许多指针,例如如何设置调试和跟踪级别等。

于 2013-01-23T20:15:36.850 回答