Qtで、WebKit Bridge で作成していると、Qt側での処理は、
QtCreator上でデバッグ可能ですが、値がWebKitへ渡った後の、
JavaScript実行までは追えません。
ただ、一昨日のQt 勉強会 #11 @Tokyoにて、
そのことについて口にしたところ、主催者の @task_jpさんから、
「QWebInspectorクラスを使うといいよ」とのアドバイスをいただきました。
こんな便利なものまで、クラスであるのか!と喜び勇んで実装してみました。
[cpp]
//QWebInspector instance.
QWebInspector *inspector = new QWebInspector;
inspector->setPage(this->page());
inspector->show();
[/cpp]
this->page() は、WebKitの、QWebView::page() のポインタを指定します。
ところが、とても残念な表示に。。。
ちゃんと、show() しているんですけどね、、、なぜ出ないのだぁ〜、と悩むこと小一時間、もうすでに消えてしまったWebページで、検索キャッシュの中に答えを見つけました(笑)。
[cpp]
//↓これを追加。
view->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
QWebInspector *inspector = new QWebInspector;
inspector = new QWebInspector;
inspector->setPage(this->page());
inspector->show();
[/cpp]
表示する側、Webページの方の、設定も変更しないと出ないということがわかりました。
検索しても、あまり事例が出ないところを見ると、QWebInspectorクラスがQtにあることを知らないか、
かつ、Web Bridgeとかする前に、HTML状態のJavaScriptをデバッグしてから載せろってことでしょうかね。。。
とりあえず、これも勉強会の宿題だったので、一つ解決っと。
このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。
日々の開発作業で気づいたこと共有を。同じところで躓いている人が、 検索で辿り着けたら良いな、というスタンスで記事を書くので不定期更新になります。
コメントする