IFrameソース内からIFrame属性を変更します。出来ますか?
-
19-08-2019 - |
質問
コンピューターでは、HOSTSリダイレクトに基づいたカスタム広告ブロックを使用しています(Chromeで広告ブロックを使用できます)。マシンでIISを実行しているため、iframe
ベースの広告がページに表示されるときに表示されるカスタムの空白404エラーがあります。
404エラーを変更して、親から背景色を継承し、背景が白以外のサイトで広告が不快に見えないようにしました。次の課題は、404ページを使用して<iframe />
を完全に折りたたみ、ページにまったく表示されないようにすることです。
iframe内から<=>を含むタグを変更することは可能ですか?高さを変更したい<!> amp;これが可能な場合、幅の属性。もしそうなら、私はこれをどうやってやるのですか?
解決
iframe内のサイトは外部サイトになる可能性があるため、不可能です。表示されている環境を操作できるようにすることは、ブラウザーのセキュリティリスクになります。
広告ブロックプロキシを使用した方が良いでしょう。
他のヒント
あなたが正しく理解していれば、404ページにiframeが読み込まれたときにiframeの崩壊を引き起こしたいということです。これを行う最も簡単な方法は、親ページに関数を作成し、ロード時に404から関数を呼び出すことです。
たとえば、iframeのIDが<!> quot; advertFrame <!> quot;次の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があるかどうかを確認し、特定のページに動的に追加することができます。
iframeを埋めるページは、iframeを含むページについて何も変更できません。できれば、セキュリティ上の大きなリスクになります。確かに、学校で与えられた2つのドメインを使用して、あなたが求めているものだけを試しました。簡単に言えば、うまくいきませんでした。 Firebugで許可拒否エラーが発生しました。