2012-02-18 23 views
0

画像をクロールするためのクローラを作成しています。プログラムでメニューをクリックして次のページに移動する必要があります。evaluateJavaScriptが1回しか動作しないのはなぜですか?

public slots: 

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

クリックした後、メインフレームは、(私がクロールしたい画像を含む)次のウェブページに新しいURLポイントをロードする必要があります。ここではページの仕上げの読み込みはいつでも私のコードです。しかし、私はが最初の時間の間だけ働くことがわかります。最初のクリック後、2回目のクリックで新しいURLが読み込まれませんでした。ウェブページのjsスクリプトは既に読み込まれており、1回だけ読み込みます。

なぜ機能しないのですか?誰も同じような状況ですか?

答えて

1

私は似ていますが、1回だけでなく2回目の呼び出しでも機能します。 webframe.evaluateJavaScript('return true;')

この力が失敗する(関数の外返し)と次の呼び出しは、それが必要として動作します。今の

私の問題を回避するには、のような偽の呼び出しです。

この失敗したコールがエンジンをリセットするか、実際に何が起きるかはわかりません。

1

重要であるかどうかは分かりませんが、ステートメントの最後にセミコロンがない場合は、

関連する問題