一部のサイトでは、正しいテキストではなくぎこちない文字が表示されます。それはMacでのみ発生します。 GMapsFXと例えばMacでのJavaFX WebViewフォントの問題
はOS X 10.11または10.12に関連するかもしれません。 Java 1.8.0_121でテストしました。
この問題の修正または回避策はありますか?
一部のサイトでは、正しいテキストではなくぎこちない文字が表示されます。それはMacでのみ発生します。 GMapsFXと例えばMacでのJavaFX WebViewフォントの問題
はOS X 10.11または10.12に関連するかもしれません。 Java 1.8.0_121でテストしました。
この問題の修正または回避策はありますか?
私の場合、エラーはシステムフォントに関連していませんでした。 Webエンジン用のユーザーエージェントを設定して問題を解決しました。ここで私は(Windowsのx64の上のFirefox)に使用される文字列は次のとおりです。
Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0
Macの場合は、そのような良いアイデア。他の意図しない副作用を引き起こす可能性があります。私はこれを次のように修正しました: 'engine.setUserAgent(engine.getUserAgent()。replace(" Macintosh; "、" "));'問題があると思います:フォントを配送するサーバーはuserAgentを使って、送信します。誤解を招くuserAgentのために間違いを犯すと、誤ったものが返されます。さらに、私はMacが配信されたフォーマットを扱うことができないと思っています。 –
あなたは解決策を見つけたのですか? – JohnnyAW
私は恐れていません... – Erel
数時間後に私は回避策を見つけました、それは私のアプリケーションのために大丈夫でした。私はリスナーを 'WebEngine'の' documentProperty'に設定しました。そして、ドキュメントが利用可能になるとすぐに、前にブラウザで識別したすべての要素を繰り返し実行し、css-fileからフォントをオーバーライドするインラインスタイルを設定する 'webEngine.executeScript()'によってjavascriptコードを実行します: 'nodes [i] .style.fontFamily = 'Serif';'。かなり厄介な、私は知っているが、それは私が見つけることができた最高の解決策だった...うーん、あなたはおそらく動的なHTMLを持っているので、それはあなたのために動作しないと思う、 – JohnnyAW