🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
JxBrowser API提供允许在当前加载的网页上的功能: * 查找指定的文本 * 高亮显示所有匹配 * 选择第一个匹配的文本 要在加载的网页上查找指定的文本,请使用Browser.findText()方法。此方法返回SearchResult实例,该实例提供对搜索结果的访问,例如匹配数和所选匹配的索引。 **注意**: *浏览器仅通过加载文档上的可见内容执行搜索。如果由于CSS规则而无法在网页上显示某些文本,则浏览器在搜索期间不会浏览此内容。此外,浏览器不会搜索大小为0x0的文档上的文本,因此请确保浏览器组件可见且其大小不为空。* 要清除网页上的突出显示(搜索结果)并取消搜索,请使用 Browser.stopFindingText(StopFindAction操作) 方法。 ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.SearchParams; import com.teamdev.jxbrowser.chromium.SearchResult; 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.*; /** * This sample demonstrates, how to find text on the loaded web page. */ public class FindTextSample { public static void main(String[] args) { final 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.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { SearchParams request = new SearchParams("find me"); // Find text from the beginning of the loaded web page. SearchResult result = browser.findText(request); System.out.println(result.indexOfSelectedMatch() + "/" + result.getNumberOfMatches()); // Find the same text again from the currently selected match. result = browser.findText(request); System.out.println(result.indexOfSelectedMatch() + "/" + result.getNumberOfMatches()); } } }); browser.loadHTML("<html><body><p>Find me</p><p>Find me</p></body></html>"); } } ```