在QT 4.6 w / Webkit中:如何处理弹出窗口请求(WebView :: createWindow)?

时间:2010-05-02 22:10:31

标签: qt4 popup webkit

我是QT的新手并且一直在尝试创建测试浏览器。我现在要做的是处理基于js的弹出请求。阅读完QT文档后,我了解到我需要重新实现QWebView :: createWindow方法才能做到这一点。

现在我已经重新实现了这个方法,但是当我尝试点击触发弹出窗口的链接时似乎没有调用它。

任何人都可以帮助我吗?我是否需要继承WebView和WebPage类?如果是这样,我该怎么做?我对QT很陌生,我已经完成了大量的搜索,却一无所获。

提前感谢所有提示和建议!

2 个答案:

答案 0 :(得分:4)

您还记得设置以下选项吗?

view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

并且不要忘记调用父类createWindow()方法。文档中有一个注释:

  

注意:如果是createWindow()方法的话   相关页面重新实现,   除非,否则不调用此方法   明确地这样做了   重新实现。

答案 1 :(得分:0)

没关系我的第二个问题(在评论区域),这是我捕捉新窗口请求所做的事情(非常感谢Duncan的提示!):

page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

这是在自定义WebView类的启动过程中使用的。

希望这对某人有用。 谢谢!