2013-09-29 7 views
7

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:

enter image description here

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

enter image description here

, 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ı?

cevap

7

MathJax.js aynı pakete dosyasını Add/sayfa.html klasör daha sonra

<script type="text/javascript" 
     src="MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
</script> 
o sonuca referans