Java FX を使用して、swing 内の別の Web ビューでハイパーリンクをクリックすると、別の Web ビュー コントロールでリンクを開きたい
実際には、同じ画面に 2 つの Web ビュー コントロール A と B があります。のハイパーリンクをクリックすると、新しいリンクが B Web ビュー コントロールで開かれます。
webviewA が webviewB のコンテンツを開くことを許可する
setCreatePopupHandlerを使用します。
webviewA.getEngine().setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {
@Override public WebEngine call(PopupFeatures popupFeatures) {
return webviewB.getEngine();
}
});
または、jdk8 を使用していて入力が苦手な場合は、次のようにします。
webviewA.getEngine().setCreatePopupHandler(
popupFeatures -> webviewB.getEngine()
);
HTML リンクでコンテンツを新しいウィンドウで開くようにする
webviewA
を使用してロードされたドキュメントにハイパーリンクを定義しますtarget="_blank"
例えば:
webviewA.loadContent(
"<a href='http://sundae.triumf.ca/pub2/cave/node001.html' target='_blank'>" +
"XYZZY" +
"</a>"
);
ハイパーリンクをクリックして魔法の言葉を発すると、巨大な洞窟の冒険が始まりますwebviewB
。