【问题标题】:How to add multiple html pages to the same WebView如何将多个html页面添加到同一个WebView
【发布时间】:2015-11-09 22:23:32
【问题描述】:

我正在尝试将多个 HTML 页面从 Java 加载到 JavaFx WebView 中,但我只添加了最后添加的 WebView:

.java 文件

private void multiplePages() {
    webEngine.load("file:D:/head.html");
    webEngine.load("file:D:/body.html");
}

如何将多个 HTML 页面添加到同一个 WebView 中

HTML:

head.html

<div class="Head">
    <h3 class="panel-title">Page Head</h3>
</div>

body.html

<div class="Head">
    <h3 class="panel-title">Page Head</h3>
</div>

提前谢谢大家。

更新:

这个问题已被here: Cannot execute JavaScript when multiple WebViews are used at the same time, JDKJDK-8129398 提到为一个错误。

这个问题是我之前提出的另一个问题的后续问题:Error calling JavaScript from Javanetscape.javascript.JSException: SyntaxError: Unexpected keyword 'this'. Expected ')' to end a argument list。挖了一圈,我认为这是问题的根源,(即在同一个WebView中调用多个HTML)。我知道这可能没有多大意义,但请注意,发布的问题是我遇到的实际问题的一个非常基本的分解部分。在同一个 WebView 中有多个 HTML 是不可避免的。

【问题讨论】:

  • 您在问题中链接的这个 JDK-8129398 问题似乎与您的问题无关(您的问题代码不包含与 JDK 问题相关的任何 JavaScript)。
  • @jewelsea 这个问题是我之前问过的另一个问题的后续:Error calling JavaScript from Java。在挖掘之后,我认为这是问题的根源,即在同一个 WebView 中调用多个 HTML。我知道这可能没有多大意义,但请注意,发布的问题是我遇到的实际问题的一个非常基本的分解部分。在同一个 WebView 中有多个 HTML 是不可避免的。

标签: javascript java html webview javafx


【解决方案1】:

单个 WebView 实例在任何给定时间只能查看单个 HTML 文档。

也许您想使用iframe,它允许您在单个 HTML 页面中嵌入多个 HTML 页面?但是,在现代 HTML 开发中,iframe 的使用通常是discouraged for many tasks,因为它有很多缺点。

实现 HTML 页面的标题和正文的标准方法是使用模板语言生成 HTML,将多个 HTML 片段组合成一个单个 HTML 页面。 HTML 模板是一个在 StackOverflow 答案范围内过于广泛的主题。 HTML 模板的组合可能很复杂,从简单的字符串附加到使用复杂的处理技术(如 JSF)。您可能希望单独研究 HTML 模板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多