19

ドキュメント内の 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.hotelanswer.com" marginwidth="0" frameborder="0" height="180" scrolling="no" width="210"></iframe><br>
</body>
4

5 に答える 5

31

ドキュメントからすべてのiframeを削除する実行可能なスクリプトを次に示します。これが機能する例です:http://jsfiddle.net/5hh9H/

var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
    iframes[i].parentNode.removeChild(iframes[i]);
}
于 2013-02-27T03:23:53.400 に答える
6

ドキュメントで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>

詳細については、次を参照してください。

于 2013-02-27T06:24:20.977 に答える
6

純粋な Javascript コード:

document.querySelectorAll('iframe').forEach(
  function(elem){
    elem.parentNode.removeChild(elem);
});
于 2019-01-13T12:34:42.233 に答える
0

div 要素内に iframe を配置する必要があります。

<div id="kk">
  //your iframe
</div>

次に、jQuery を使用して iframe を削除します。

$('#kk').click(function(){
   $(this).html("");
});

これは可能な解決策です。

于 2013-02-27T03:20:17.653 に答える