問題タブ [javafx-webengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - WebEngine (または別のスクリプトに依存するスクリプト) で複数のスクリプトを実行する
(JavaFX の) WebEngine を使用して、Web ページで JavaScript (および jQuery) を実行し、結果を (Java コードで) 処理したいと考えています。
一部のスクリプトを単独で実行するコールバック関数に問題があります。
私の問題をできるだけ簡単に説明するために、望ましくない結果を示す最小化されたコードを作成しました (これはより大きなプロジェクトの一部にすぎません)。
そこで、次の 3 つのクラスを作成しました。
- Browser - WebEngine をラップし、Web ページをロードしてスクリプトを実行するブラウザーとして機能するクラス。
- JQueryFunction - jQuery コールバック関数で使用されるいくつかの関数をリストするクラスで、複数の方法で実装できます。(基本的に、それらはユーザーが自分のやり方で実装する機能的なインターフェースであるべきですが、簡単にするために、私はそれを通常の機能にしました)。
- Test - 2 つのスクリプトを実行する main メソッドを持つクラス。
ブラウザ
JQuery関数
テスト
テストを実行すると、最初executeScript
は期待どおりに実行され、一部の要素のテキストが変更されます (先頭にインデックス番号が追加されます)。
しかし、2 つ目 executeScript
は永久に動かなくなり、GUI と実際には JavaFX アプリケーション全体が動かなくなります。
これが発生する理由を理解しています...
メソッドexecuteScript
は WebEngine を ( 経由でPlatform.runLater
) 呼び出して、要素を反復処理し、Java 関数を呼び出す jQuery を実行します (毎回異なるパラメーターを使用)。
最初の実行 (function1 を呼び出す) では、返された String を function1 から取得し、要素のテキストに適用します。(完全に予想通り)!
2 回目の実行 (function2 を呼び出す) では、Java 関数を呼び出す jQuery 関数が実行されますが、Java 関数はさらに JavaScript (または jQuery) を実行する必要がありますが、最初の実行が完了するまで WebEngine は実行されません。
ただし、2 回目の実行の結果に依存するため、1 回目の実行は終了しません。
WebEngine は、1 つのスレッドのみ (FX スレッド内) で 1 つのタスクを次々に (シリアルに) 実行するようにプログラムされています。
それを解決する方法はありますか?
WebEngine が JavaFX アプリケーションでのみ動作するように制限されているのはなぜですか?
また、なぜ 1 つのスレッドだけで動作する必要があるのでしょうか?
javafx - JavaFX WebEngine から JavaScript でファイルを読み取る
JavaFX (jdk 1.7 から) を使用して角度のある Web ページを表示しています。
この angular アプリケーションでは、javascript FileReader を使用して、ファイル (FileReader.readAsDataURL) の base64 コンテンツを読み込みます。
問題は、JavaFX の WebEngine が FileReader をサポートしていないことです (サポートしていると主張する人もいますが)。
私が欲しい機能:
- REST-WS にメッセージを送信する
- このメッセージには複数の添付ファイルが含まれている可能性があります
- メッセージが送信される前に添付ファイルをサーバーに保存しないでください
- 添付ファイルをプレビューする必要はありません (名前のみ)
注: JavaFX の WebEngine は、複数ファイルの入力をサポートしていません (そのため、機能しません!)
これを達成する別の方法はありますか?
javascript - Javascript window.location.hash を呼び出す Javafx WebEngine が機能しない
WebView がドキュメント内の特定のアンカーを指すようにする別の解決策を試しましたが、失敗しました。私のターゲット名は'occ'
私が使用window.location.hash = 'occ'
しwindow.location.href ='#occ'
ましたが、ここでは機能しませんでした私のコード
ここでアンカーを作成するコードの一部
javafx - javafxでPrintLayoutのマージンを設定するには?
私はjavaFxアプリケーションを持っていて、プリンターモジュールに取り組んでいます。ソフトウェアでは、インストールされたプリンターリスト、特定のプリンターから印刷を取得するがレイアウトで問題が発生するなど、他のことを行っています。現在、80mmプリンターがあり、印刷を取得したときこのプリンターでは、左右に余白がたくさんあります。正しい印刷ができるように助けてください。
印刷用に次のコードを使用しています:-
javascript - javafx webview の角がちらつき
javafx webview 内で実行される角度のあるアプリを構築しています。2 つの要素の ng-show (または ng-class) を単一のスコープ変数にバインドすると、それらはしばらくの間、両方とも表示されます。
私は次のスタイルを試しました:
と
同じ結果で。それらを異なるスコープ変数にバインドする(そしてそれらの出現順序を手動で設定する)ことは私の最後の手段ですが、私には非常に角度のない解決策のように思えます。他の誰かがそのような問題に気づきましたか? 私のAngularコードに根本的な問題がありますか?
コードを編集 すると、通常のブラウザで動作します。アプリに ng-material モジュールを挿入しないと、問題はなくなります...
javafx - Javafx が Webview で一部のサイトを開くことができない
アプリケーションで JavaFX WebView を使用しています。完全に開いているサイトもあれば、そうでないサイトもあります。クロム、ファイアフォックスなどのすべてのブラウザーで動作する内部 Web アプリケーションがあります。WebView で開くとログイン ページが起動しますが、[ログイン] をクリックすると、アプリケーション自体が のようなエラーをスローSome thing went wrong
し、他のすべてのブラウザでは正常に動作します。一部の SAP URL も機能していません。
stackoverflow を検索した後、いくつかの解決策が見つかりました。以下の解決策を試してみましたが、問題は解決しません:
エラーを表示するために以下のコードを追加しました。
JavaFX WebView ブラウザ機能とは何ですか? あらゆる種類のサイトに対応していますか?
html - WebView JavaFX で jar 内の Web サイトを使用する
fxml といくつかの Web サイトを res フォルダーにコピーする単純なアプリケーションを JavaFX で作成しました。fxml は res/gui にあり、Web サイトは res/szenario にあります。
IDE からコードを実行すると、GUI が表示され、埋め込まれた WebView に Web サイトが表示され、それらをクリックすることができます。ただし、jar ファイルを作成すると、Web サイトが正しく表示されません。スタイルとロジックがありません。たとえば、WebView のボタンをクリックできません。
MainController のコードは次のとおりです。
GUI は以下を使用してロードされます。
fxml が jar で機能し、Web サイトが機能しないのはなぜですか?
編集res
: GUIとWebサイトを含むフォルダーの画像を追加しました:
javafx - WebView エラー: サーバーによって接続がリセットされました
JavaFX アプリケーションを実行した後、次のURLWebView
をロードしているときにエラーがスローされます: http://docs.oracle.com/javafx/2/webview/jfxpub-webview.htm
他のPC では機能しましたが、現在のPC では機能しませんでした。なんで?これは構成の問題ですか? 私はWindows 10を使用しており、他の PC はWindows 7を使用しています。エラーの原因は何だと思いますか?
java - getHostServices を使用して WebBrowser から PDF を開く
私はJavaFX側にはかなり慣れていませんが、これまでのところ、ローカルのhtmlファイルを取り込むJava Webブラウザを構築できましたが、持っているhtmlファイルにはpdfへのリンクも含まれています。getHostServices() を使用してシステム上のデフォルトの pdf アプリケーションを開くことができると読みましたが、null ポインター例外が発生し続けます。すべてが正しくインポートされます。
マウスをクリックすると、その場所(URL)が文字列に割り当てられ、その文字列が場所につながるようにしています:
file:///C:/Users/Me/Desktop/Absorb/bin/resources/test.pdf
そこで、部分文字列を取得し、最初の 8 文字を削除して C:/ ディレクトリだけに残し、その文字列を getHostServices().showDocument(); に渡します。
NULL ポインター例外
オンラインでa.getHostServices().showDocument(newStr);
Java File を使用してみましたが、まだ役に立ちません。助けやアドバイスをいただければ幸いです。