我试图让 QtWebkit 允许通过 Javascript 打开页面但没有成功。
我不使用 QWebView,只使用 QWebPage(无头运行)。我从 QWebPage 派生并覆盖 createWindow(目前我的覆盖只记录一条消息并调用基本 createWindow)。我还将 JavascriptCanOpenWindows 设置为 true。
我的函数被调用,但基本的 createWindow 似乎从不返回任何东西,除了 NULL 并且从不返回 QWebPage。为什么会这样?
看起来 QWebPage 实现中的 createWindow() 返回 NULL。
在我的程序中,我从 createWindow() 返回从 QWebPage 派生的类的实例。为了自定义新页面的处理,我重新实现了 acceptNavigationRequest() 方法。
从 Qt 示例中阅读浏览器应用程序示例对我很有帮助,该示例显示了它如何处理新窗口的创建。