为什么evaluateJavaScript只能使用一次?

问题描述:

我正在写一个履带式扫描图像,需要通过编程的方式单击菜单才能转到下一页。这里是我的代码,只要在页面加载完成:为什么evaluateJavaScript只能使用一次?

public slots: 

void nextPage() 
{ 
    mainFrame()->evaluateJavaScript("readweb.nextPage()"); 
} 

点击后,主机应该加载一个新的URL指向下一个网页(其中包含图像我要抓取)。但我发现它只适用于第一个时间。第一次点击后,第二次点击不会导致新的url加载。网页的js脚本已经加载,只加载一次。

为什么它不工作?任何人有类似的情况?

我有类似的东西,但它不仅工作一次,它只是每一秒钟都可以工作。

我现在的解决方法是假的调用,比如:webframe.evaluateJavaScript('return true;')

这迫使失败(函数返回外),并在下次调用将工作,因为它应该。

我不知道这个失败的调用是否会重置引擎或真正发生了什么。

不知道它是否重要,但是在声明结尾缺少分号?