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\");");
}
}