6

Qt4 の WebKit ポート/実装を使用して単純なログ ビューアーを作成しようとしています。私の HTML コードは次のようになります。

http://pastie.org/613296

<script>より具体的には、C++ コードから HTML ドキュメントのセクションで定義されている add_message() 関数を呼び出す方法を見つけようとしています。


// Doesn't work:
QWebElement targetElement = chatView->page()->mainFrame()->findFirstElement("head").firstChild("script");

// Function is not included, either...
qDebug() << targetElement.tagName() << targetElement.functions();

// The ultimate attempt in calling the function anyway:
QVariant functionResult = targetElement.callFunction("add_message");
4

1 に答える 1

14

Qt 4.5 を使用している場合は、次のようにします。

htmlView->page()->mainFrame()->evaluateJavaScript("add_message(); null");

注:nullスクリプトの最後はパフォーマンスの問題です。スクリプトの最後の値でQWebFrame::evaluateJavaScript戻ります。QVariantスクリプトの最後の値を評価するのは非常に時間がかかる場合があるためnull、最後に置くとすぐに戻ります。

于 2009-12-03T14:53:04.520 に答える