2

QtWebKit と JQuery を使用したアプリケーションを開発したいと考えています。

私が知る必要があるのは、ファイルから JQuery を読み取って JavaScript を評価することと、ウィジェット内に表示される「ページ」内にスクリプト タグとして埋め込むことの間に違いはありますか?

編集:私はこれを少なくとも部分的に理解したようです。evaluateJavaScript は確実に動作するようです。しかし、私がそうするなら

baseurl = QUrl.fromLocalFile(
  QDir.current().absoluteFilePath("doesntexist.html"));
view.setHtml(
  u"""
    <html>
      <head>
        <script type="text/javascript" 
          src="jquery-1.4.2.js">
        </script>
      </head>
      <body></body>
    </html>""", baseurl);

ファイルはディスクから読み取られることさえありません (inotify でチェック)。これは、いずれかで初期化されているbaseurlにも影響します

QUrl("file:/")
QUrl(".");
QUrl();

また

QUrl("file://")

また、スクリプトの src パラメータをハード ドライブの絶対パスに変更し、「./」を前に付けた場合と付けない場合の相対パスに変更しようとしました。

スクリプトタグをローカルのjsファイルで動作させるには、どうすれば(Qtリソースシステムを除いて)正しく行うことができますか? これは文書化が不十分なだけですか、それとも何か不足していますか?

4

1 に答える 1

0

Qt リソース システムを使用して、html を次のように変更できます。

<script type="text/javascript" 
      src=":/jquery-1.4.2.js">

メインの呼び出しマクロ Q_INIT_RESOURCE を忘れないでください

または evaluateJavaScript を使用して

connect(view, SIGNAL(loadFinished(bool)), this, SLOT(loadJQuery()));

...

void MainWindow::loadJQuery()
{
  QFile file("jquery-1.4.2.js");
  file.open(QFile::ReadOnly);
  view->page()->mainFrame()->evaluateJavaScript(file.readAll());
}

リソースシステムを使用する方が良いと思います。

于 2011-08-17T04:42:44.920 に答える