問題タブ [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.
javascript - JavaFX WebEngine および Pushbullet 認証
OAuthアクセストークンを取得するためにPushbullet認証Webページを開くことを目的とした小さなJavaFXアプリに取り組んでいます。JavaFX での記述は非常に簡単でした。ただし、フォームに入力して Google アカウントを使用して検証すると、認証に失敗します。ネイティブの Chrome ブラウザーで URL を開くと同じように機能するため、この問題は JavaFX WebEngine 実装の制限された機能に関連していると思いますが、それが何であるかはわかりません。
以下は、私が使用したコードです。
このコードを使用して Twitter または Slack の Oauth アクセス トークンを取得することはできますが、Pushbullet 認証メカニズムでは成功しないことに気付きました。フォームが送信されると、「アカウントにサインイン中にエラーが発生しました: サーバーに接続できませんでした: 」というエラーが表示されます。
約 2 週間前に Pushbullet チームにメールを送信しましたが、返信がありません。それまでの間、私は firebug を使用して何が問題なのかを理解しようとしましたが、成功しませんでした:
感想、コメントなどなんでもどうぞ。
java - JavaFX WebView の背景透過性と WebEngine 印刷の問題
私はプロジェクト、収益管理システムに参加しています。何らかの理由で、いくつかのレポートを WebView に表示して印刷する必要がありますが、デザイン コンセプトでは WebView を透明にする必要があります。ここで WebView の透過的な問題を解決することができました: JavaFXクレジットのWebViewの透明な背景1として、FX CSS ではそれを達成できず、以下に示すように WebView にレポートを表示することもできました。 :
コード:
…しかし問題は、印刷しようとすると、紙に暗い背景の長方形の画像が印刷され、紙の黒い部分がレポートを含む html ページであると思われることです。以下は表示です。
印刷コード:
プリントアウト: 私はここに来たばかりで、評判が 10 に達していないため、プリントアウトの画像リンクを提供できませんでしたが、とにかく投稿で説明されています。
しかし、WebView を透明にし、WebView をデフォルトの背景色 (白) のままにし、レポートのテキストの色を黒に変更するコードにコメントしようとすると、紙に正常に印刷されますが、実際には css でレンダリングされる方法ではありません。私のスタイルでは、"Segoe UI Light" と "Segoe UI Bold" でテキスト フォントをレンダリングしますが、すべてを "Times New Roman" フォントと同じフォント サイズで出力します。
結果: 黒いテキスト コンテンツが読み込まれた白い背景の WebView
プリントアウト: 私はここに来たばかりで、評判が 10 に達していないため、プリントアウトの画像リンクを提供できませんでしたが、とにかく投稿で説明されています。
質問は:
WebView を透明にし、WebEngine を背景なしで印刷して、css でスタイルを設定した方法で印刷する方法はありますか? 私は JavaFX の経験が 8 か月しかないので、ここで私を助けてくれる人がいれば幸いです。
印刷中ですが、一部のレポートは従来の方法 (TableView) で表示することも必要です。オンラインで入手したヘルプ (ノードを印刷する方法) を適用しましたが、問題の正確な解決策が得られなかったと思います。Java Swing Table のように、フローがオーバーフローした場合でも、表示されていないデータでもデータ全体を印刷できる TableView を印刷するのに役立つコードを教えてください。
javafx - JavaFX WebEngine から JavaScript でファイルを読み取る
JavaFX (jdk 1.7 から) を使用して角度のある Web ページを表示しています。
この angular アプリケーションでは、javascript FileReader を使用して、ファイル (FileReader.readAsDataURL) の base64 コンテンツを読み込みます。
問題は、JavaFX の WebEngine が FileReader をサポートしていないことです (サポートしていると主張する人もいますが)。
私が欲しい機能:
- REST-WS にメッセージを送信する
- このメッセージには複数の添付ファイルが含まれている可能性があります
- メッセージが送信される前に添付ファイルをサーバーに保存しないでください
- 添付ファイルをプレビューする必要はありません (名前のみ)
注: JavaFX の WebEngine は、複数ファイルの入力をサポートしていません (そのため、機能しません!)
これを達成する別の方法はありますか?
javafx - JavaFX WebKit crash after building some big strings
This code produces a crash in my machine after clicking [Do it!] twice:
#xA;Crash report:
#xA;The app crashes with jdk1.7.0_71. I've also tried with jre1.8.0_74 with same result.
I've been able to load the very same HTML with Google Chrome where I can click the button many times without any issue. Google Chrome crashes at first click if I rise the size of the string from 20MB to 40MB. With just 20MB it seems Chrome releases memory when necessary and it never crashes.
My goal is to avoid random crashes in a JavaFX app after calling some functions which return strings with sizes from 1KB to 32MB. It seems something is accumulating in the WebEngine and even with medium sized strings the app crashes after a number user interactions.
Any suggestion would be appreciated. Thanks in advance!
java - JavaFX - WebEngine の DOM モデルへのアクセス
Web エンジンの状態のリスナーを使用していますが、正常に動作しています。また、状態が SUCCEEDED に達したため、この時点でドキュメントが入力されます。
状態リスナー:
}
私の問題は、トグル ボタンで別のリスナーを使用することです。これは、Web エンジンのドキュメント モデルがまだ設定されていない場合に、(別のビューのコンストラクターで) メソッド selectToggle() によって手動で起動します。 JavaFX ステージがポップアップする前に状態 SUCCEED に到達しないため、状態リスナー。
だから今、UIがレンダリングされたときにJavaFXステージでリッスンする方法が必要です。この時点で State リスナーが反応し、その後 setInitialState() メソッドを呼び出して、Web エンジンのドキュメント モデルを操作できるからです。
ToggleButton を選択するコード:
javascript - 2 番目のスレッドで JavaFX WebEngine で実行される Javascript コード
質問があります。Platform.runlater()を使用せずに、2番目のスレッドでWebEngineでjavascriptコードを実行することは可能ですか? メイン スレッドで JavaScript コードを実行するとアプリがフリーズするので、2 番目のスレッドで実行したいのですが、JavaFX の他のコントロールと同じように動作するようです。メイン スレッドにある必要があります。それをバイパスするオプションはありますか?よろしく
javafx - JavaFX、ウェブエンジン、ウェブビュー。タグの src をその場で変更 (ロードしたばかりのドキュメント内)
まず、デスクトップ (Android ではない) アプリケーションについてです。
ロードされた HTML ドキュメント内に配置されている画像のソースを、(ハード ドライブから) ローカルのものに置き換えたいと考えています。JavaFX コンポーネント (webEngine->webView->Scene->Stage) を使用してロードされたページを表示します。私がしたこと?
webEngine.load(" http:// any_page ")を使用してページをロードしました。その後、(Java 側で) 画像オブジェクトを取得し、それを HTMLImageElementImpl にキャストしました。これは、読み込まれたページに存在するオブジェクトの表現です。以下のように src 属性を設定します。
htmlImageElementImpl.setSrc("file:/local_path_to_my_image");
...そして、ロードされたページに新しい画像が表示されることを期待しています。残念ながら、うまくいきません。前の画像 (元はロードされたページにあった) が消え、新しい画像が表示されません (白い領域があります)。この画像があると判断しました(右ボタンをクリックすると、「新しいウィンドウで画像を開く」オプションを選択して表示できます)。現れる。コンポーネントを表示するには、コンポーネントを更新する必要があると思います。
以下のように、このタグの src をインターネットに存在する画像に置き換えると、何が面白いか:
htmlImageElementImpl.setSrc(" http://_file_existing_in_the_internet//image.jpg ");
...すべて正常に動作し、置き換えられた画像がその場で表示されます。
私は 2 日間過ごしましたが、この問題を解決できませんでした。だから私はあなたに尋ねることにしました。
よろしくお願いします
ケス