我在代码中的某个地方调用QWebFrame::evaluateJavaScript
,它没有任何效果。但是,如果我将此调用替换为setTimer(0)调用,并且在此计时器超时时它将调用原始函数。我怎么知道它是否有效?在我的情况下,所评估的JavaScript代码调用一个JavaScript函数,该函数依次进行AJAX调用。该AJAX调用依次使QNetworkAccessManager
使用的QWebFrame
创建并发送QNetworkRequest
。但是,当我直接从代码中调用QWebFrame::evalutateJavaScript
时,没有创建任何请求。这就是我说它在第一种情况下不起作用时的意思。
似乎是由于某些原因阻止了QtWebKit和/或QNetworkAccessManager
在调用evaluateJavaScript
之后执行其工作。我怀疑它与事件和主(gui)事件循环有关。有任何想法吗?
最佳答案
鉴于您对使用setTimer()的评论,在正确的位置调用qApp-> processEvents()可能会解决此问题。
您能提供一些代码吗?我不确定这是什么意思:
该AJAX调用反过来使
使用的QNetworkAccessManager
QWebFrame创建并发送一个
QNetworkRequest。