問題タブ [qwebpage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
post - QtWebKit QWebPage::acceptNavigationRequestおよびPOSTデータ
この(QWebPage :: acceptNavigationRequest)の瞬間にPOSTデータにアクセスすることは可能ですか?ナビゲーションをロックし、NetworkAccessManager :: createRequestに到達しなかったために機会がないため、そこでリクエストのPOSTデータを確認したいと思います。
ありがとう!
qt - QWebView でポップアップを有効にするには? [Qt]
QtWebkit と QWebPage を使用して Web ページをレンダリングする非常に単純な Qt アプリケーションがあります。問題は、ポップアップをサポートしていないように見えることです。たとえば、google.com で [Gmail] をクリックすると、ブラウザでポップアップが無効になっているという Javascript アラートが表示されます...
また、次の "a" タグを含む html ファイル:<a href = "index.html" target = "_blank">Link</a>
どちらも機能しません。
誰でも私を助けることができますか?
ありがとう。
qt4 - QWebPage の読み込みが完了したかどうかを知るにはどうすればよいですか?
QWebPage::loadFinished() でスロットを接続する以外に、そのステータスをポーリングする方法はありますか? その割合を直接返す関数は見つかりませんでした。
c++ - QWebView,このリンクが新しいウィンドウかどうかを判断するには?
コード
新しいウィンドウ リンク機能 openUrl の代わりにどのように判断すればよいですか? このコードをどのように記述しますか? ありがとう!!!
multithreading - 別のスレッドでの QWebFrame の印刷
私のqtアプリケーションでは、QWebFrame(QWebPageのメインフレーム)からいくつかの大きなhtmlコードを印刷しています。HTML コードにはいくつかのインライン画像が含まれており、印刷に時間がかかります。そのため、印刷呼び出しを別のスレッドに入れて、GUI の応答性を維持しようとしました。ドキュメントで述べたように、これは可能だと思いました(スレッドでのペイント)。
しかし、私はまだ有名な「QPixmap: GUIスレッド外でピックスマップを使用するのは安全ではありません」を取得します
印刷する私のコードは次のとおりです。
すべてのオブジェクトが gui スレッドに存在し、html が前に生成されることを明確にします。画像は次のようにインライン化されます。
それで、私はここで何が間違っていますか?QWebFrame が内部的にいくつかの QPixmaps を使用しているということですか? 別のスレッドで QWebFrame::print 呼び出しを使用するための解決策はありますか?
c++ - QtWebView -- C++ -- linkClicked イベントから返される JavaScript 文字列を取得する方法
私の問題に対する決定的な答えを見つけることができませんでした。
現在、QWebView コントロールに、ハード ドライブにある HTML ファイルをロードしてもらい、javascript アクションでベクター マップを実装しています。html ファイルは jvectormap US States Map をロードします。任意の状態のクリック アクションは、showCities 関数に関連付けられた onRegionClick アクションを起動します。このイベントとコード引数は、jquery-jvectormap.js ファイルに実装された onRegionClick メソッドによって処理されます。html ファイルは次のとおりです。
また、Qt の mainwindow.h ヘッダー ファイル情報:
そして MainWindow.cpp ファイル:
特定の領域をクリックしても、on_webView_linkClicked 関数がトリガー/起動されません。クリックされた領域は、文字列を返すように設計されています。http://www.google.comのような Web ページでこれを試すと、 on_WebView_linkClicked 関数の QMessageBox が実際に QMessageBox を表示するイベントをトリガー/起動します。
ここでの目標は、関数 showCities の html ファイルで返された JavaScript 文字列を取得して、on_webView_linkClicked イベントに表示することです。明らかに、linkClicked アクションは JavaScript の戻り値をリンクとして認識していないため、jquery ベクター マップを使用するとサイレントのままになります。
私はこれをどこでも検索しましたが、私が得ることができる唯一の答えは、vectormap 内のそれらの領域に URL リンクが添付されている場合は機能する可能性があるということですが、それらの領域にダミーのリンクを埋め込んでも on_webView_linkClicked イベントが発生しません。
ご協力ありがとうございます:)
qt - Qt WebKitハンドルのチェックボックスがオンになっています
QWebView (QWebPage) でチェックボックスのチェック状態を処理する必要があります。
詳細:
HTML にはいくつかのチェックボックスがあります。それらのいくつかがチェックされたときにアプリケーションを変更したい。そのためには、いつ変更されたかを知る必要があります。
どうやってするの?
qt - QWebView / QWebPage でのエラー処理
success = false
私はただ入っただけではなく、より多くの情報を得たいと思っていますloadFinished
(これはほとんどの場合、ロードがキャンセルされただけです)。このサイトのドキュメントや他の投稿から、QWebPage をサブクラス化し、extension()
メソッドをオーバーライドして ErrorPageExtension を処理する必要があることを知りました。
ただし、機能しません。つまり、何を試しても、拡張メソッドが呼び出されません。私はおそらく本当にばかげたことをしているのに、それを見ていません。基本的に、私のクラスは次のようになります。
メソッドの実装は問題ではありません。そこにブレークポイントがあり、呼び出されることはありません。次のようなインスタンスを作成します
QWebView での QWebPage オブジェクトの寿命については少し確信が持てませんが、私のテストでは、QWebPage は常に同じインスタンスのままであり、単に新しいコンテンツをロードしているようです。したがって、自分のページを QWebView に渡すだけでよいと思いましたが、派生クラスを使用する別の方法はありませんでした。しかし、WebView を介して、またはページのメインフレームを介して直接、偽の URL、存在しないローカル ファイル、またはサポートされていないコンテンツを読み込むと、ErrorPageExtension 情報を含む呼び出しが行われません。
どんな助けでも大歓迎です。これは Qt 4.8.2 を使用しています。
c++ - 要求された Web ページに対して複数の loadFinished シグナルを受信する
loadFinished
を読み込もうとすると複数の信号を受信しますが、QWebPage
何が問題の原因なのかわかりません。同じ問題をほのめかしているように見える他のいくつかの質問がありましたが、解決策は私にはうまくいきませんでした:
最初の質問では、信号をスロットに 1 回だけ接続するという回答がありましたが、私は既にそれを行っています。2 番目の質問への回答は、フレームのloadFinished
信号に接続する必要があることを示唆していますが、それが行われます。
複数のページを読み込もうとしています:
シグナルを処理するクラスは次のようになります。
フレームのloadFinished
信号のみに接続した結果は次のとおりです。
loadFinished
ページのシグナルに接続したときの結果は次のとおりです。
動作がわかりません。関連するコンテンツを取得する場合と取得しない場合があるのはなぜですか。ページのloadFinished
信号に接続すると、最終的にコンテンツを取得できますが、実際にいつ発生するかはわかりません。ページの読み込みが実際に終了したことを知るにはどうすればよいですか?
アップデート
UA::loadFinished
コンテンツのほとんどが 3秒以内に到着すると想定しているので、回避策を考え出しましloadFinished
たQWebPage
。それはあまりきれいではありませんし、効率的でもありませんが、この状況ではうまくいきます。
qt - Qt/PyQt: QWebView/QWebPage の「新しいウィンドウで開く」アクションを実行するにはどうすればよいですか?
開いている QWebView がある場合、リンクのオプションとして「新しいウィンドウで開く」を含むデフォルトのコンテキスト メニューが気に入っています。ただし、ユーザーがリンクを新しいウィンドウで開くように要求したときに動作する方法を見つけることができないようです。ユーザーが新しいウィンドウでリンクを開くことを選択したときにメソッドが呼び出されないため、 QWebPage.createWindow メソッドをオーバーライドしても機能しないようです。
推奨事項はありますか?私はPyQtを使用しています。
コード例:
createWindow が呼び出されていないことを確認するために、そこにデバッグ プリントがあります。