天啦,我终于等到有别人回复这贴了,之前因为要修改,发了删,删了发好几次,结果不让我再回复了 回到原来的问题,我之前理解的弹出框好像不对,后来终于有点理解了,就是一个只有用户名和密码的框对吗,类似这种: 这个框是需要自己来显示的,webkit本身不提供,可以参考官方自带的例子: https://github.com/qt/qtwebkit/blob/dev/Tools/QtTestBrowser/webpage.cpp 需要连接QWebPage::networkAccessManager()的authenticationRequired()信号 connect(networkAccessManager(), SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), this, SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*))); 在后面实现authenticationRequired的部分可以看到,要自己创建一个用户名密码对话框来让用户输入
connect(networkAccessManager(), SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), this, SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*)));
重写新类继承QWebView并重写createWindow方法了,已经实现了可以 “右键在新窗口中打开链接”。但是 路由器的登陆 弹出窗口,还是弹不出来……
你得自己先判断一下你路由器弹出窗口的原理是什么,才能知道下一步是啥 如果是像我说的javascript调用了window.open(),你修改QWebSettings的设置了吗
好多年没有用webkit了,用仅剩的印象回复你一下 你这个我判断应该是遇到javascript调用了window.open()之类的方法打开新窗口 我不知道你是用的c++还是qml,我只用过c++的 这边关键是QWebView::createWindow这个方法 从文档里可以看到,如果要支持从js里打开新窗口,还必须将QWebSettings::JavascriptCanOpenWindows设置成enable 然后需要继承QWebView并重写createWindow方法,返回一个QWebView *用来传递给js
你可以试试你本地的网页浏览器打开看下有没有这个问题
16,817
社区成员
26,684
社区内容
加载中
试试用AI创作助手写篇文章吧