Borland Delphi 6.0 を使用して作成しているブラウザ ヘルパー オブジェクト(BHO) に取り組んでいます(完全を期すために、これは Internet Explorer で使用するために登録したネイティブ 32 ビット DLL をコンパイルする 2001 年の Delphi リリースです) )。
BHO の目的は、元のコンテンツでは利用できない特定の Web ページ要素に追加情報を追加することです。したがって、私が達成しようとしている種類の例として、それは、画像が何を示しているか、いつ作成されたかについての詳細を表示するツールチップを画像に追加することを意味するかもしれません-私はこの目的のためにQTip 、Javascriptを使用しますJQueryに基づいて構築されたポップアップ。
BHO の Delphi コンポーネントを使用して、変更したいページ要素を DOM で検索し、それらの要素を一意のクラス属性を持つスパンでラップし、いくつかのスクリプトを DOM HEAD に挿入します (スクリプトは、 BHO はリソースとして、ページの読み込み時に取得され、ドキュメントに完全に書き出されます。新しい IHTMLScriptElement がそれぞれに対して作成され、取得されたスクリプトが script 要素の text プロパティに割り当てられます)。
スクリプトは、これらのスパンのシークを処理し、ユーザーが対象のページ要素のいずれかに「マウスオーバー」したときに表示される QTip オブジェクトを作成します (3 つのスクリプト、JQuery のコピー、QTip のコピー、およびスパン要素を探すための私のスクリプト)。
これはすべて、私の作業環境で十分に機能しています: Windows XP SP3 と Internet Explorer 8.0
Internet Explorer 9 以降の最新のコピーを使用して、より新しい Windows バージョンに BHO を登録すると、問題が発生します。 ここで、テストに使用するいくつかの Web ページを開くと、ページの下部に次のようなメッセージが表示されます。
「セキュアコンテンツのみ表示」
ブロックされたコンテンツを許可または禁止するように求められます。ブロックされたコンテンツは、BHO からページに挿入したスクリプトのようです。
質問 1 は次のとおりです。クライアント マシンを変更せずに、挿入したスクリプトに対して IE がこのメッセージを表示しないようにする方法はありますか?
これとは別に、BHO を初めて登録して IE を起動すると、画面の下部に次のようなメッセージが表示されます。
「不明な発行元からの '' アドオンを使用する準備ができました」
質問 2 は2 つです。まず、このメッセージが表示されないようにするために、登録時に BHO をプログラムで「使用準備完了」とマークする方法はありますか? または、代わりに、不吉な響きの「不明な発行者」ラベルを削除するプロセスは何ですか-これには、ある種の高価なデジタル署名プロセスが含まれると思いますが、それに関する情報を見つけることができませんでした.
質問 3は、前の質問の続きです。IE が「アドオン... 使用の準備ができました」と表示したときに「有効にする」をクリックすると、Web ブラウザーを再起動するまで機能しません。それを回避してすぐに機能を開始する方法があるかどうか、またはブラウザを再起動する必要があるという事実をユーザーに警告する方法があるかどうかはわかりません-提案?
提案とあなたの時間を前もってありがとう
補遺、SO は、私の質問に最も関連性があると思われるタグ (「ブラウザー ヘルパー オブジェクト」など) を追加するには、1500 以上の評価が必要であると不平を言っています。