企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> 用于取消某些资源的加载,比如css,images 使用ResourceHandler,您可以确定是否应加载HTML,图像,JavaScript和CSS文件,favicon等资源。默认情况下,将加载所有资源。要修改默认行为,您需要注册自己的ResourceHandler实现。例如: ``` NetworkService networkService = browser.getContext().getNetworkService(); networkService.setResourceHandler(new ResourceHandler() { @Override public boolean canLoadResource(ResourceParams params) { boolean isNotAnImageType = params.getResourceType() != ResourceType.IMAGE; if (isNotAnImageType) { return true; } // Cancel loading of all images return false; } }); ``` 此实现取消了所有图像的加载。使用相同的技术,您可以实现并注册自己的 ResourceHandler ,您可以在其中取消所需资源的加载。 ``` import com.teamdev.jxbrowser.chromium.*; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; /** * This sample demonstrates how to handle all resources such as * HTML, PNG, JavaScript, CSS files and decide whether web browser * engine should load them from web server or not. For example, in * this sample we cancel loading of all Images. */ public class ResourceHandlerSample { 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); NetworkService networkService = browser.getContext().getNetworkService(); networkService.setResourceHandler(new ResourceHandler() { @Override public boolean canLoadResource(ResourceParams params) { System.out.println("URL: " + params.getURL()); System.out.println("Type: " + params.getResourceType()); boolean isNotImageType = params.getResourceType() != ResourceType.IMAGE; if (isNotImageType) { return true; // Cancel loading of all images } return false; } }); browser.loadURL("http://www.google.com"); } } ```