Jxbrowser浏览器d出子窗口的问题

发布时间:2025-12-09 15:14:37 浏览次数:4

针对a标签的跳转,有这样的方法。在点击前执行以下代码

browser.executeJavaScriptAndReturnValue(

"var ele = document.getElementsByTagName('a')for(var i=0i<ele.lengthi++){ele[i].target = '_self'}")

代码含义为:将所有a标签的跳转设置成内部跳转。

下面用JavaFX 的WebView进行说明:

代码如下

WebView wv = new WebView()

WebEngine we = wv.getEngine()

we.load(url)

不能正常访问该url的原因, 没有设置UserAgent .

什么是UserAgent? 是一个字符串, 用于申明浏览器用于 HTTP 请求的用户代理头的值。该字符串的作用一般包含了 *** 作系统版本. 浏览器型号和版本等信息.

例如"Mozilla/5.0(MacintoshUIntelMacOSX10_6_8en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50"

为什么要设置UserAgent?

1 有的网站为了防止爬虫恶意爬取信息, 可能会屏蔽一些UserAgent.

2 有的网站会根据UserAgent 来识别 *** 作系统和浏览器, 然后展示不同的排版, 比如很多网站的移动版和PC版 的排版布局就差别很大. 就是通过UserAgent来判断到底显示移动版还是PC版的.

修改后的参考代码

WebView wv = new WebView()

WebEngine we = wv.getEngine()

System.out.println("默认的UserAgent"+we.getUserAgent())

we.setUserAgent("Mozilla/5.0(MacintoshUIntelMacOSX10_6_8en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50")

System.out.println("现在的UserAgent"+we.getUserAgent())

we.load(url)

互相交流学习Java知识~


需要做网站?需要网络推广?欢迎咨询客户经理 13272073477