JavaFX WebView
denetimi ile deneme yapıyorum ve matematiksel içerik oluşturmak için MathJax Javascript kütüphanesini kullanmak istiyorum.JavaFX WebView yerel Javascript dosyasını yükle
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 dosyası şuna benzer::
<!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>
bir temel JavaFX FXML projeyi oluşturduk bir test olarak
, bir FXML için WebView
ve güncellenmiş şöyle kontrolör kod eklendi
Bu beklendiği gibi çalışır ve aşağıdaki sonucu üretir:
Test için, hem html hem de JavaScript dosya yollarının sabit sürücümdeki konumlara sabit kodlandığından, bir sonraki adımın, html'yi, uygulama ile birlikte bulunmayan bir kaynak olarak paketlemek olduğunu unutmayın. yerel dosyalar.
Sayfayı bu şekilde aramak için denetleyici kodunu güncelledim (html değiştirilmedi).
@Override
public void initialize(URL url, ResourceBundle rb) {
webView.getEngine().load(
this.getClass().getResource("Page.html").toExternalForm());
}
ama bu şu sonucu üretir: Gördüğünüz gibi
, matematiksel içerik artık oluşturulur.
HTML'ye bir CDN'den başvurmak için html <script>
etiketini değiştirirseniz, her şey orijinal örnekte olduğu gibi çalışır ancak yerel JavaScript dosyasına (ve sonuç olarak, uygulama).
Mümkün olanı başarmaya çalışıyorum mı?