Note: Advice in this article will only work for JxBrowser 6. See the corresponding article for JxBrowser 7 here.(注意:本文中的建议仅适用于JxBrowser6,JxBrowser7相应文章请点击这里。)
JxBrowser API allows receiving all output messages sent to the Web Console via console.log() JavaScript function. You can listen to JavaScript Web Console messages with different levels: DEBUG, LOG, WARNING and ERROR. To start receiving Web Console messages you must register ConsoleListener for a specified Browser instance. For example: (JxBrowser API允许接收通过console.log()输出的所有关于JavaScript函数发送到Web控制台的消息。您可以监听不同级别的JavaScript Web Console消息:DEBUG,LOG,WARNING和ERROR。要开始监听Web控制台消息,必须为指定的Browser实例注册ConsoleListener。例如:)
browser.addConsoleListener(new ConsoleListener() { public void onMessage(ConsoleEvent event) { System.out.println("Message: " + event.getMessage()); } });
Now, if JavaScript code on the loaded web page prints message to Web Console via the console.log(), console.error(), console.info(), or console.warn() function, then the ConsoleListener.onMessage() methods will be invoked.(现在,如果加载的网页上的JavaScript代码通过console.log(),console.error(),console.info()或console.warn()函数将消息打印到Web控制台,那么ConsoleListener.onMessage()方法将被调用。)
import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.events.ConsoleEvent; import com.teamdev.jxbrowser.chromium.events.ConsoleListener; import com.teamdev.jxbrowser.chromium.swing.BrowserView;<span class="fr-marker" data-id="0" data-type="false" style="display: none; line-height: 0;"></span><span class="fr-marker" data-id="0" data-type="true" style="display: none; line-height: 0;"></span> import javax.swing.*; import java.awt.*; /** * The sample demonstrates how to listen to console messages including * JavaScript errors. */ public class ConsoleListenerSample { public static void main(String[] args) { Browser browser = new Browser(); BrowserView browserView = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(browserView, BorderLayout.CENTER); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.addConsoleListener(new ConsoleListener() { public void onMessage(ConsoleEvent event) { System.out.println("Level: " + event.getLevel()); System.out.println("Message: " + event.getMessage()); } }); browser.executeJavaScript("console.error(\"Error message\");"); } }