1

タイトルのように、jfx webview に jquery を含める必要があります。これまでのところ、私のアプリケーションがswingである方法で、リソースフォルダーからcssスタイルシートを含めることができますが、swingのjtextpaneは多くのcssをサポートしていないため、javafxのwebviewを使用してcssサポートを改善しています。

4

4 に答える 4

2

スクリプトをリソースから文字列としてロードし、WebEngine の executeScript() コマンドを呼び出して実行します。

WebView browser;
StringBuilder jQueryContents = new StringBuilder; 
        // load this string with your jQuery file contents

BufferedReader reader = new BufferedReader(new InputStreamReader(
        App.class.getResourceAsStream("/jquery.min.js")));

String line = reader.readLine();

while (line != null){
    jQueryContents.append(line);
    line = reader.readLine();
}

JSObject jQuery = null;
try{
    jQuery = (JSObject) browser.getEngine().executeScript("$");
}catch (JSException jse){}

if (jQuery == null){ // Don't load jQuery if there already is one, or you
                     // will destroy any $(document).ready() handlers that
                     // were declared previously
    browser.getEngine().executeScript(jQueryContents.toString());
}    

そして、エンジンは jQuery をロードしました。アプリケーションがインターネット上にある場合は、Google から jQuery をロードする方がはるかに優れています。これは、前のページで既にロードされている場合、再度ロードする必要がないことを意味します。アプリがイントラネットまたはクローズド サンドボックスの場合、それらについて心配する必要はありません。

于 2013-11-27T23:19:08.320 に答える
0

私はこれらの解決策を試しました-そしてそれらは機能しますが、扱いにくいです-そして醜いです。

javafx プログラムからページを html-text としてロードする環境で、インターネットにアクセスしたくない場合は、jquery.min.js コードを含むリソース (html ファイル) を作成します。html ファイルを連結するだけです。このようにして、jquery は期待どおりに実行され、ページを webview にロードします。

于 2019-01-24T14:33:32.150 に答える