多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 难点 从JxBrowser版本6.13开始,JxBrowser DOM Events API扩展了新的方法和类,允许在指定的HTML元素上创建和触发DOM事件。JxBrowser支持Event,UIEvent,MouseEvent和KeyEvent DOM事件。要调度事件,请使用DOMEventTarget.dispatchEvent(DOMEvent 事件)方法。 以下示例演示如何为DOM节点模拟自定义事件并在JxBrowser中处理它。 ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.dom.By; import com.teamdev.jxbrowser.chromium.dom.DOMDocument; import com.teamdev.jxbrowser.chromium.dom.DOMNode; import com.teamdev.jxbrowser.chromium.dom.events.DOMEvent; import com.teamdev.jxbrowser.chromium.dom.events.DOMEventListener; import com.teamdev.jxbrowser.chromium.dom.events.DOMEventParams; import com.teamdev.jxbrowser.chromium.dom.events.DOMEventType; import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent; import com.teamdev.jxbrowser.chromium.events.LoadAdapter; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; /** * The sample demonstrates how to programatically simulate a custom event for a DOM node. */ public class DOMSimulatingEventsSample { public static void main(String[] args){ Browser browser = new Browser(); BrowserView view = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { DOMDocument document = event.getBrowser().getDocument(); DOMEventType eventType = new DOMEventType("MyEvent"); DOMEvent myEvent = document.createEvent(eventType, new DOMEventParams()); DOMNode root = document.findElement(By.id("root")); root.addEventListener(eventType, new DOMEventListener() { @Override public void handleEvent(DOMEvent event) { if (event.getType().equals(eventType)) { System.out.println("MyEvent received successfully"); } } }, false); root.dispatchEvent(myEvent); } } }); browser.loadHTML("<html><body><div id='root'>Some text</div></body></html>"); } } ```