2

私のコンピューターでは、HOSTS リダイレクトに基づくカスタム adblock を使用しています (Chrome で adblock を使用できるようにするため)。iframeマシンで IIS を実行しているため、ページに に基づいた広告が表示されたときにカスタム ブランク 404 エラーが表示されます。

404 エラーを変更して、親から背景色を継承するようにしました。これにより、白以外の背景のサイトで広告が不快に見えなくなります。次の課題は、404 ページを使用して を完全に折りたたんで、iframeページにまったく表示されないようにすることです。

<iframe />含まれているタグを iframe 内から変更することは可能ですか? 可能であれば、高さと幅の属性を変更したいだけです。もしそうなら、どうすればこれを行うことができますか?

4

3 に答える 3

3

iframe 内のサイトは外部サイトになる可能性があるため、これは不可能です。それらが表示される環境を操作できるようにすると、ブラウザのセキュリティ上のリスクになります。

広告ブロック プロキシを使用することをお勧めします。

于 2009-01-19T01:54:42.353 に答える
0

iframe を埋めるページは、iframe を含むページについて何も変更できません。もしそれが可能であるならば、それは巨大なセキュリティ上のリスクとなるでしょう。確かに、私は学校で与えられた 2 つのドメインを使用して、まさにあなたが求めていることを試しました。簡単に言えば、うまくいきませんでした。Firebug で許可拒否エラーが発生しました。

于 2009-01-19T06:41:27.530 に答える
0

私があなたを正しく理解していれば、404ページがその中にロードされたときにiframeの折りたたみをトリガーしたいと言っている. これを行う最も簡単な方法は、親ページで関数を作成し、ロード時に 404 から呼び出すことです。

たとえば、iframe の ID が「advertFrame」の場合、次の JavaScript 関数を親ページに追加できます。

function hideAdvertFrame() {
  var advertFrame = document.getElementById("advertFrame");
  advertFrame.style.height = 0;
  advertFrame.style.width = 0;
}

次に、404 ページで、ロード時にすぐに関数を呼び出すことができます。

<body onload="window.parent.hideAdvertFrame();">

とはいえ、セキュリティ ホールが発生しにくいクロス フレーム スクリプティング以外のオプションを検討することをお勧めします。おそらく、親ページはAJAXを使用して、adblockが読み込まれる前に有効なURLを持っているかどうかを確認し、特定したらページに動的に追加できます。

于 2009-01-19T02:19:22.147 に答える