我想从Qt4.8.6中抑制QtWebkit中的Javascript超时警告。我创建了一个QWebPage的子类(如下所示),并使用setPage将其添加到QWebView。但是,对话框仍然出现。在互联网上搜索我发现了一个例子,看起来像我的代码,人们说它正在起作用(例如reimplement the shouldInterruptJavaScript() in Qt (C++))。我一定是在做傻事。如果我覆盖像javascriptConsoleMessage 这样的函数被称为OK。
我的课程:
class NoDialogWebPage : public QWebPage
{
Q_OBJECT
public:
NoDialogWebPage(QObject * parent = 0) : QWebPage(parent) {}
public slots:
bool shouldInterruptJavaScript()
{
return false;
}
};
如何从QWebView的容器中调用它:
m_pWebView = new QWebView(this);
m_pWebPage = new NoDialogWebPage(m_pWebView);
m_pWebView->setPage(m_pWebPage);
答案 0 :(得分:0)
Qt需要它是一个私人插槽,而不是公共插槽。只需改变
public slots:
bool shouldInterruptJavaScript()
到
private slots:
bool shouldInterruptJavaScript()
我刚用Qt 4.8.4对它进行了测试,它就像一个魅力。