1

禁止された Web サイトへのアクセスを拒否する BHO を開発しています。特定の URL を見つけたら、次のコードで iframe を開きます。

Document:= IE.Document as IHTMLDocument2;
iFrame:= Document.createElement('iframe');
iFrame.setAttribute('src', 'denied.html', 0);
iFrame.setAttribute('position', 'fixed', 0);
iFrame.style.width:= '100%';
iFrame.style.left:= '0px';
iFrame.style.top:= '0px';
iFrame.style.border:= '0px';
iFrame.style.height:= '100%';
(Document.body as IHTMLDomNode).appendChild(iFrame as IHTMLDomNode);

しかし、このコードは iframe を Web サイトの最後の小さなスペースに開くだけです。Web サイト全体を iframe のコンテンツと重ねるにはどうすればよいですか?

4

2 に答える 2

3

絶対にブロックしたい場合は、要素を追加するのではなく、置換する必要があります。

したがって、本格的な HTML ページを作成する必要があります。次に、おそらく Document.Location プロパティを変更して、ブラウザをそれにリダイレクトできます。または、古いコンテンツを Document.OuterHTML := .... 文字列を実行する新しいコンテンツに置き換えます。

経験則は簡単です - 何らかの方法で置換によって追加しないでください。

PS: ブラウザーのオプションで簡単に無効にできる IE 専用の BHO はなぜですか? \windows\system32\drivers\etc\hosts またはグループ ポリシーを使用して、禁止されたサイトを禁止したほうがよいでしょう。はるかに信頼性が高くなります。

于 2012-08-16T14:56:41.747 に答える
3

位置を絶対に設定します。

于 2012-08-16T14:55:01.177 に答える