2013-02-27 18 views
8

Próbuję usunąć znaczniki iFrame w moich dokumentach. To jest funkcja. Ale wydaje się, że nie działa. Oto mój przykładowy kod:Usuń iframe z javascript

<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> 

Odpowiedz

16

Oto skrypt, który można uruchomić, który usunie wszystkie elementy iframe z dokumentu. Oto przykład tej pracy: http://jsfiddle.net/5hh9H/

var iframes = document.querySelectorAll('iframe'); 
for (var i = 0; i < iframes.length; i++) { 
    iframes[i].parentNode.removeChild(iframes[i]); 
} 
+0

wow! Chłodny! Dziękuję MattDiamant! – OneNation

+0

ten kod nie działa poprawnie, jeśli jest więcej niż jeden element iframe, ponieważ w tym przypadku elementy iframe są zbiorem na żywo, które są aktualizowane, dopóki usuniemy elementy iframe z dokumentu –

+0

@ s.ermakovich Nie sądzę, że to musi być poprawne , ale i tak zmieniłem go na statyczną kolekcję. – MattDiamant

0

Powinieneś umieścić element iframe wewnątrz elementu div.

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

Następnie użyj jQuery, aby usunąć element iframe.

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

To możliwe rozwiązanie.

4

Nie wspominając Dlatego trzeba usunąć iframe w dokumencie.

Robię to, aby zapobiec atakowi Clickjacking. Ale zadziała w każdym przypadku.

Trzeba to:

<style id="defendClickjack" type="text/css">body{display:none;}</style> 

a następnie

<script type="text/javascript"> 
    if (self === top) { 
     var defendClickjack = document.getElementById("defendClickjack"); 
     antiClickjack.parentNode.removeChild(defendClickjack); 
    } 
    else { 
     top.location = self.location; 
    } 
</script> 

można znaleźć więcej informacji tutaj:

+0

Ja też lubię tę odpowiedź! – OneNation

Powiązane problemy