我在代码中的某个地方调用QWebFrame::evaluateJavaScript,它没有任何效果。但是,如果我将此调用替换为setTimer(0)调用,并且在此计时器超时时它将调用原始函数。我怎么知道它是否有效?在我的情况下,所评估的JavaScript代码调用一个JavaScript函数,该函数依次进行AJAX调用。该AJAX调用依次使QNetworkAccessManager使用的QWebFrame创建并发送QNetworkRequest。但是,当我直接从代码中调用QWebFrame::evalutateJavaScript时,没有创建任何请求。这就是我说它在第一种情况下不起作用时的意思。

似乎是由于某些原因阻止了QtWebKit和/或QNetworkAccessManager在调用evaluateJavaScript之后执行其工作。我怀疑它与事件和主(gui)事件循环有关。有任何想法吗?

最佳答案

鉴于您对使用setTimer()的评论,在正确的位置调用qApp-> processEvents()可能会解决此问题。

您能提供一些代码吗?我不确定这是什么意思:


  该AJAX调用反过来使
  使用的QNetworkAccessManager
  QWebFrame创建并发送一个
  QNetworkRequest。

07-26 05:22