当前位置: 首页 > 知识库问答 >
问题:

JavaFX WebView加载本地Javascript文件

涂泰平
2023-03-14

我正在试验JavaFXWebView控件,我想使用MathJax Javascript库来呈现数学内容。

作为测试,我创建了一个基本的JavaFXFXML项目,在FXML中添加了一个WebView,并更新了控制器代码,如下所示:

public class SampleController implements Initializable {

    @FXML
    private WebView webView;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        webView.getEngine().load(
            "file:///Users/benjamin/Desktop/Page.html");
    }
}

html文件如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
        </script>
        <script type="text/javascript"
                src="/Users/benjamin/Downloads/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
        </script>
    </head>
    <body>
        When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
        $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
    </body>
</html>

这正如预期的那样工作,并产生以下结果:

请注意,对于测试,html和JavaScript文件路径都是硬编码到硬盘上的位置,因此下一步是将html打包为与应用程序捆绑的资源,这样它就不会查找本地文件。

我已经更新了控制器代码,以便像这样查找页面(html没有更改)。

@Override
public void initialize(URL url, ResourceBundle rb) {
    webView.getEngine().load(
        this.getClass().getResource("Page.html").toExternalForm());
}

但这会产生以下结果:

如您所见,不再渲染数学内容。

如果我更改html

我想达到的目标可能吗?


共有1个答案

斜昊空
2023-03-14

将MathJax.js文件添加到P的同一个包/文件夹age.html然后将其引用为

<script type="text/javascript"
        src="MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
 类似资料:
  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我目前正在阅读“最先实现HTML5编程”一书。我想在自己的机器上加载从Web服务器命名的文件的内容。我为此使用了wampserver。 在文件夹我把所有相关的,和文件,也文件。 我的JavaScript代码非常简单: 这什么也没做!键入链接:在我的浏览器中打开正确的文件,因此链接应该正确。即使使用本书随附的文件(带有我要制作的应用程序的最终版本),也不会加载任何内容。 使用警报语句进行

  • 我已经创建了一个函数来使用URL从文件中获取文本。该函数使用jQuery的来获取文件。这个函数工作得很好,但这里的问题是是异步的,所以输出的顺序是不可预测的。我尝试将它更改为同步的,但它完全冻结了页面。我尝试过等待它响应,我想我会花点时间,但它没有起作用。 这是我的密码。 此函数输出 这就产生了一个问题,因为我无法文件的内容,因为它还没有加载,因为异步的get函数。那么,有没有办法告诉函数等待返回

  • 问题内容: 我尝试在WKWebView上使用javascript加载本地HTML游戏。尽管我可以看到CSS样式的HTML页面,但是我听不到游戏的声音,并且某些游戏的动作不对应。 我注意到,如果我通过http live服务器加载完全相同的游戏,那么一切似乎都很完美。因此,我认为本地负载出了点问题。也许这一个Apache的问题可能是这个问题? Info.plist: 我的代码 (SWIFT 3) :

  • 本文向大家介绍Android 如何本地加载pdf文件,包括了Android 如何本地加载pdf文件的使用技巧和注意事项,需要的朋友参考一下 大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开。 这样的需求要怎么实现呢?上网查了一些资料,发现了一个很好用PDF开源库。 使用起来也很