問題タブ [iwebbrowser2]
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.
websocket - websocket は IWebBrowser2::Navigate で動作しませんか?
私は小さなhtml websocketアプリケーションを書いています。この HTML ページは IE ウィンドウでは問題なく動作しますが、IWebBrowser2::Navigate を使用して同じページを開こうとすると、標準の Java スクリプト エラー メッセージ ボックスに「WebSocket が定義されていません」というエラーがスローされます。以下はサンプルの JavaScript コードです。
ナビゲートメソッド内にwebsocketが実装されているかどうか教えてください。
よろしく、 アナンド・チョウベイ
mfc - Web リンクが WebBrowser に読み込まれ、リンクが IE でスムーズに表示されている間にスクリプト エラーがスローされる
CWebBrowser が埋め込まれた MFC アプリケーションがあります。
現在、私は問題に遭遇しました:
私のブラウザはいくつかの Web ページの読み込みに失敗し (オブジェクトの欠如、JS 関連のエラー)、同じ Web ページが IE(10) に正常に読み込まれている間、常にスクリプト エラーがスローされます。
また、Firefox で読み込もうとしましたが、問題ありません。ページ自体が原因ではないのではないかと思いますが……。
私が知っているように、WebBrowser には IE と同じ解析エンジンがあります。しかし、なぜ異なる振る舞いをするのでしょうか?
私を助けてください 。前もって感謝します 。
私のOS:Win7 x64 + IE10。
mfc - WebBrowser(VC)を使用したデータの投稿に失敗しました
CWebBrowser が埋め込まれた MFC アプリケーションがあります。指定した web に移動するときにデータを投稿したい。インターネットに関するいくつかの調査で、Navigate メソッドの 1 つの引数がそれを渡すことを目的としていることがわかりました。しかし、何度か試してみて、いつも失敗します。投稿データは、navigate メソッドが呼び出された後、データ トラフィックで運ばれません (はい。データをキャプチャして確認します)。before2Navigate カルバックの post パラメータも確認しましたが、空です..
これが私のスニペットです。
私を助けてください 。どうもありがとう。
proxy - IWebBrowser2->Navigate でプロキシ サーバーを使用する方法
IWebBrowser2 を取得し、それを使用して URL に移動するコード (VC++) があります。プロキシサーバー経由にしたい。投稿されたいくつかのソリューションを試しましたが、どれもうまくいかないようです。
私が得た最も近いものはMSDNコードを使用していましたが、実際にはInternet Explorerの設定が変更されたため、変更がシステム全体に及んだため、これは私のニーズには実用的ではありません.
理想的には、プロキシ設定を IWebBrowser2 インスタンスごとに設定したいので、コードに 2 つの IWebBrowser2 オブジェクトを含めることができます。1 つはプロキシを使用し、もう 1 つはプロキシを使用しません。それが不可能な場合は、プロセスごとに実行できます。
誰かがこれを機能させ、いくつかのコードを投稿できれば、私は非常に感謝しています。
よろしくお願いします。
c++ - (IE BHO) BeforeNavigate2 イベントから IWebBrowser2 を取得
IE BHO に取り組んでいます。BeforeNavigate2 イベントで、IWebBrowser2 へのポインターを取得するにはどうすればよいですか? ここに私のコードがあります:
param[0] のタイプは VT_DISPATCH ではありません:
MSDN (BeforeNavigate2)によると、最初のパラメーターは
ウィンドウまたはフレームを表す WebBrowser オブジェクトの IDispatch インターフェイスへのポインター。このインターフェイスは、IWebBrowser2 インターフェイスに対してクエリを実行できます。
私のコードの何が問題になっていますか?
前もって感謝します。
c++ - BeforeNavigate2 イベントでフォームを列挙する
私は IE BHO を書いています。イベント コールバックでフォームを列挙する方法を知りたいです。これは、BeforeNavigate2 イベントでフォームを列挙するコードですが、長さは常に 0 です。
常に 0 を出力するのはなぜですか?
ありがとう。
internet-explorer - IWebBrowser2 Ctrl + C およびその他のショートカットのサポート
私は些細な問題を抱えていないようです。
自分のウィンドウを IE メイン ウィンドウにフックします。私のウィンドウは WTL の CWindowImpl から派生し、一部のコンテンツを表示する IWebBrowers2 コントロールをホストします。
IWebBrowser2 は<input type='text'/>、テキストの編集と操作に必要なすべてのキーのサポートが必要な編集ボックス付きの html を示しています (Ctrl + C、Ctrl + V、Ctrl + X など... + Esc、Delete、上下の矢印)。
また、Ctrl + P、Ctrl + S などのショートカットを禁止する必要があります。これは、必要のない Web ページに固有のダイアログを呼び出すためです。
よくある問題のようで、IWebBrowser2 オブジェクトに対して TranslateAccelerator を呼び出す必要があります。
ウェブ上で同様の質問がいくつかあります – Tab キーは IWebbrowser2 では機能しません
解決策 –ホットキーが機能しない!!
IWebBrowser2 コントロールでの Tab キーのサポート
これは非常に興味深いスレッドです。私が必要とするのはすべてです –ホストされたWebブラウザーコントロールでのControl-Cの処理
そのため、まず IWebBrowser2 オブジェクトに対して TranslateAccelerator を呼び出す必要があります。しかし、最初にキーボードからメッセージを取得する必要があります。
それで、それがどのように見えるか見てみましょう。

フックされたウィンドウがキーボード入力メッセージを受け取りません。クラス「Internet Explorer_Server」を持つウィンドウは、それらすべてを受け取ります (実際には、IWebBrowser2 内の IE の hwnd です)。
したがって、この hwnd のウィンドウ プロシージャをフックする必要があります。
フックされた wnd proc 内で、次のことを行います。
はい!いくつかのことがうまくいきました!Esc、Delete、上下の矢印キーが機能するようになりました。
すべてではありません。ショートカットに問題があります。
- Ctrl + C、Ctrl + A は機能しません。
Ctrl + X、Ctrl + V - 作業を行います。
これは、クラス "Internet Explorer_Server" を持つ hwnd の Spy++ のメッセージのログです。
Ctrl + CI では、WM_COMMAND を受け取りません。

Ctrl + X:

理由はわかりません。
2. 「悪い」ショートカットは機能します。印刷ダイアログは Ctrl + P で呼び出され、Web ページの保存ダイアログは Ctrl + S などで呼び出されます。この場合、何もできません。フックされたウィンドウ プロシージャで何を返しても、それらはまだ表示されています。そのため、ウィンドウに送信する前にそれらを処理する必要があります。
解決?
この問題に関するすべての解決策には、次のようなものがあります。
- PreTranslateMessage
- 実際に翻訳アクセラレータ
この瞬間まで、フックされたメッセージ プロシージャには TranslateAccelerator しかありません。
事前翻訳はそのようなことをしなければなりません:
また、PreTranslateMessage では、「不適切な」ショートカットをフィルター処理して、ウィンドウに送信しないようにすることができます。
別の男性も PretranslateMessage を使用することを提案しています (上記のスレッドからのダイアログ):
– CMessageFilter からウィンドウを派生させ、CMessageLoop::AddMessageFilter でインストールし、例に示すように PreTranslateMessage を実装します。
– 私は今、サンプルが示唆することをしたと思います. しかし問題は、私の「親」ウィンドウがキーストロークを取得しないことです。キーストロークはすべて IE AX コントロールに送られます。
– そのため、CMessageFilter が必要です。メッセージが宛先ウィンドウにディスパッチされる前に、メッセージ ポンプにフックされます。
わかりましたが、IWebBrowser2 をホストするルート ウィンドウはキーボード メッセージを受け取りません。また、ウィンドウに PreTranslateMessage はありません。ウィンドウ proc 呼び出しのみです (親 CWindowImpl による)。
上記のように、CMessageFilter から派生させて PreTranslateMessage を実装できますが、メイン ウィンドウを作成せず、その CMessageLoop にアクセスできないため、CMessageLoop::AddMessageFilter でイベントをサブスクライブできません。
では、このすべてを機能させるために今何をすべきでしょうか? PreTranslateMessage を使用する必要がありますか?