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