過去我使用過JEditorPane,現在我正在用JavaFX WebEngine嘗試一下。我如何在顯示的頁面上爲包含超鏈接的事件註冊監聽者(如鏈接選擇或點擊鏈接)?JavaFX中的HyperlinkListener WebEngine
在JEditorPane中有addHyperlinkListener方法...
編輯:
我跟着第一個答案的建議。這是我的代碼:
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == Worker.State.SUCCEEDED) {
// note next classes are from org.w3c.dom domain
EventListener listener = new EventListener() {
public void handleEvent(Event ev) {
System.out.println("KLIKNIETO!!!");
}
};
Document doc = webEngine.getDocument();
Element el = doc.getElementById("a");
NodeList lista = doc.getElementsByTagName("a");
System.out.println("Liczba elementow: "+ lista.getLength());
for (int i=0; i<lista.getLength(); i++)
((EventTarget)lista.item(i)).addEventListener("click", listener, false);
}
}
});
我現在收到事件後點擊鏈接。不過,我需要參考點擊鏈接(獲取它的內容)。我怎樣才能做到這一點?
你需要什麼樣的內容? dom節點,文本內容,href,從鏈接的href位置檢索的內容? – jewelsea
我需要鏈接的href內容(例如some link) – Marco