QWebView允许弹出窗口?(QWebView allow pop-ups?)

2019-10-18 20:07发布

在我的项目,我有一个加载打开一个弹出窗口的页面的QWebView。 但窗口不会打开。 我看着CreateWindow函数,但我不知道如何继承一个小部件。 这些都是一些设置我放到web视图:

QWebSettings *settings = ui->webView_2->settings();
settings->setAttribute(QWebSettings::JavascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

是什么让我的web视图允许弹出窗口的最简单的方法?

谢谢你的时间 :)

Answer 1:

你需要重新实现QWebView的CreateWindow的方法。 该QWebView返回将被自动设置为所需的URL。

例如:

QWebView* WebView::createWindow(QWebPage::WebWindowType type)
{
    // WindowDialog is just a simple QDialog with a QWebView
    WindowDialog* dlg = new WindowDialog(this);
    dlg->show();

    // A method to retrieve a pointer to the QWebView of the dialog is needed
    return dlg->webView();
}

请记住,cookies不两个QWebViews之间共享,所以你还需要实现自己的cookie管理器。 做到这一点的一种方法是继承QNetworkCookieJar,并保持一个静态的“全球性”的实例。



文章来源: QWebView allow pop-ups?