3

Java FX を使用して、swing 内の別の Web ビューでハイパーリンクをクリックすると、別の Web ビュー コントロールでリンクを開きたい

実際には、同じ画面に 2 つの Web ビュー コントロール A と B があります。のハイパーリンクをクリックすると、新しいリンクが B Web ビュー コントロールで開かれます。

4

1 に答える 1

5

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

于 2012-12-04T09:19:50.343 に答える