問題タブ [bho]
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.
javascript - Internet Explorer拡張機能(BHO)でのサンドボックス化されたJavascriptの実行
FirefoxにはSandboxとevalInSandbox()があります。Chromeは、コンテンツスクリプトで実行をサンドボックス化しています(分離実行と呼ばれています)。IEブラウザ拡張機能で同じものを探しています。
javascriptファイルをロードしてからevalScript()を呼び出すことはできますが、コードはページに存在するjavascriptと同じ環境で実行されます。サンドボックス化/分離された環境でライブラリ(jQueryを含み、jQueryに基づく)を実行する方法が必要ですが、それでも、ページ上で実行されているかのようにDOMを変更できます。
Jintは有望に見えますが、現在jQueryを評価することはできません。(彼らはそれを解析することができます。)
これどうやってするの?
c# - 制御不能な HTTPWebRequest
ユーザーが Windows フォームのボタンをクリックすると、HTTPWebRequest POST をサーバーに送信する C# で記述された Browser Helper Object があります。通常、これはうまく機能します。しかし、ときどき、気が狂ったように見える BHO を受け取り、膨大な数の HTTPWebRequests (毎分約 50 から 100) を継続的に送信します。クライアントに PC を再起動させる動作を止めることができた唯一の方法は、多くの場合、ユーザーが IE を閉じていても、POST は引き続き発生します。
HTTPWebRequest を使用しているときに、似たような動作を見たことがありますか? 接続の再試行ロジックの一部が狂っているように見えますが、HTTPWebRequest に再試行メカニズムが組み込まれているとは思わなかったので、その可能性は非常に低いと思われます。
接続を正しく設定していません。このようなことを防止するための適切な戦略はありますか?
接続を設定する方法は次のとおりです。
javascript - IE でページのリファラーを取得する最も信頼できる方法は何ですか?
ブラウザー拡張機能 (BHO) 内から、ユーザーを現在のページに誘導した URL を知りたいです。document.referrer を取得するだけでよいと思ったのですが、リンクが新しいウィンドウで開かれると空白になります。これは単なるタフなビッキーですか、それとも場合によっては opener.location.href を使用できますか?
フォローアップとして、私は現在、ページが読み込まれたとき、つまり DocumentComplete でこれを取得していますが、BeforeNavigate2 で取得したいと考えています。BeforeNavigate2 で現在の場所をリファラーとして使用する以外にそれを行う方法はありませんが、ユーザーがアドレスバーに新しい URL を入力すると、現在のページがリファラーとして表示されます。つまり、サイト A のリンクからサイト B に移動したように見え、実際にはサイト A に移動してからサイト B の URL を入力したように見えます。
更新:私が知る限り、「オープナー」プロパティが設定されることがあるため(ウィンドウがjavascriptから開かれた場合は?)、そこから有効なリファラーページを取得できます。これがどのような状況で利用可能かを具体的に知っている人はいますか?
internet-explorer - IE DOM から HTML ソース コードを生成する
IE でライブ DOM ツリーから HTML ソース コードを生成する方法はありますか? DOM は JavaScript によって変更される可能性がありますが、最終的な結果が欲しいだけです。
これを行うために BHO を書きたい場合、どのイベントを処理すればよいですか?
c++ - オブジェクトをIDispatchと比較して、メインフレームのみを取得する(BHO)
BHO(Browser Helper Object)に精通している人がいるかどうかはわかりませんが、c++の専門家も私を助けてくれます。
私のBHOでは、メインフレーム(現在のページ内のすべてのIframeではなく、最初のコンテナー)でのみOnDocumentComplete()関数を実行したいと考えています。(別の方法は、これがメインフレームである場合にのみコードを配置することです)。
いつ入力されるのがメインフレームであるかを追跡する方法がわかりません。
グーグルで検索した後、各フレームに「IDispatch * pDisp」があることがわかり、最初のフレームへのポインターと比較する必要があります。
これが主な機能です。
ここで、メインウィンドウ(フレーム)かどうかを確認します。
私はMicrosoftフォーラムでこの質問をしましたが、実際に実装する方法を説明せずに回答を得ました:http ://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/7c433bfa-30d7-42db-980a- 70e62640184c
c++ - マウスイベントBHO
BHOに、特定のWebページのある要素のonmousedownイベントをリッスンさせたい。特定の要素を見つけるすべてのコードがあり、msdnには、get_onmousedownイベントを使用する必要があると書かれています。私はこのコードを思いついた。
問題は、このイベントが発生したときに何らかの関数を実行するように指示するにはどうすればよいですか?
internet-explorer - ブラウザヘルパーオブジェクトがIE8に読み込まれません
私はBHOを持っていますが、アドオンのリストで有効になっていることがわかります。しかし、Win2k8 R2マシン(64ビット)でIEを起動すると、ロードされません。
IE Enhancedセキュリティも無効にしましたが、助けにはなりません。同じBHOが他のマシンにロードされます。
(HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Browser Helper Objects&HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID)の下のレジストリの詳細は問題ないようです。
BHOが実際にロードされないようにする設定はありますか?
bho - BHO(C#)を介してIEWebページのスナップショットを取得する方法
IEブラウザにロードされたWebページのスナップショットを取得するためにC#でIEBHOを構築しようとしています。これが私がやろうとしていることです:
また、次のCOMメソッドをp/invokeします。
スナップショットを撮ると:
CaptureWebScreenImage((IHTMLDocument2)webBrowser.document);を呼び出します。
public static Image CaptureWebScreenImage(IHTMLDocument2 myDoc){
}
ウェブページの画像が表示されません。むしろ、背景が黒の画像を取得しています。これが正しい方法かどうかはわかりませんが、IEでWebページの画像を取得するためにIViewObject::Drawメソッドが使用されていることがWeb上でわかりました。
私は以前、次のcodeprojectのページで説明されているようにNative PrintWindow()メソッドを使用して画像キャプチャを行っていました-http ://www.codeproject.com/KB/graphics/IECapture.aspx
しかし、画像サイズは巨大です!他の手法でサイズを小さくできるか試してみました。上記の私のコードで誰かが間違いを指摘できれば(きっとたくさんあるでしょう)、それは素晴らしいことです。
ありがとう、カピル
c# - BHO で WM_GETMINMAXINFO メッセージを受信する方法 (C#)
C# で IE BHO を構築しようとしています。BHO が実行されている Internet Explorer ウィンドウに送信された WM_GETMINMAXINFO メッセージを受信したいと考えています。これはどのように行うことができますか?
ありがとう、シミル