ドキュメントからiFrameタグを削除しようとしています。これが機能です。しかし、動作しないようです。これが私のサンプルコードです
<script>
function removeiframe() {
alert("Hello Lovely World");
var markup = document.body.innerHTML;
var filtered=markup.replace(/(<iframe.*?>.*?<\/iframe>)/g,"");
alert("he: " + markup);
//markup = Regex.Replace(markup, @"<script.*?/script>", "", RegexOptions.IgnoreCase);
//markup = Regex.Replace(markup, @"<iframe.*?/iframe>", "", RegexOptions.IgnoreCase);
markup = filtered;
document.body.innerHTML = markup + "<hr><hr>HELLO";
}
</script>
<body onload="removeiframe()">
<iframe marginheight="0" src="http://www.metalgearrisingguide.com" marginwidth="0" frameborder="0" height="180" scrolling="no" width="210"></iframe><br>
</body>
ドキュメントからすべてのiframeを削除する実行可能なスクリプトを次に示します。これがこの作業の例です: http://jsfiddle.net/5hh9H/
var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
iframes[i].parentNode.removeChild(iframes[i]);
}
ドキュメントからiframeを削除する必要がある理由については触れていません。
クリックジャッキング攻撃を防ぐためです。しかし、それはどんな場合でも機能します。
あなたはこれを必要とします:
<style id="defendClickjack" type="text/css">body{display:none;}</style>
その後
<script type="text/javascript">
if (self === top) {
var defendClickjack = document.getElementById("defendClickjack");
antiClickjack.parentNode.removeChild(defendClickjack);
}
else {
top.location = self.location;
}
</script>
あなたはここでより多くの情報を見つけることができます:
純粋なJavascriptコード:
document.querySelectorAll('iframe').forEach(
function(elem){
elem.parentNode.removeChild(elem);
});
Iframeはdiv要素内に配置する必要があります。
<div id="kk">
//your iframe
</div>
次に、jQueryを使用してiframeを削除します。
$('#kk').click(function(){
$(this).html("");
});
これは可能な解決策です。