2013-02-27 199 views
8

我正試圖刪除我的文檔中的iFrame標記。 這是功能。但它似乎並不奏效。這裏是我的示例代碼使用javascript刪除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> 

回答

16

這是一個可以運行的腳本,它將從文檔中刪除所有的iframe。下面是這個工作的一個例子:http://jsfiddle.net/5hh9H/

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

哇!涼!謝謝MattDiamant! – OneNation 2013-02-27 10:11:04

+0

如果存在多個iframe,則此代碼無法正常工作,因爲此例中的iframe是一個實時集合,只要我們從文檔中刪除iframe即可更新 – 2016-02-12 10:26:12

+0

@ s.ermakovich我不認爲這必然是正確的,但是無論如何我都將它改爲靜態集合。 – MattDiamant 2016-02-12 20:15:35

0

您應該將iframe放入div元素中。

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

然後使用jQuery刪除iframe。

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

這是一個可能的解決方案。

4

你沒有提到爲什麼你需要刪除的文件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> 

您可以在這裏找到更多的信息:

+0

我也喜歡這個答案! – OneNation 2013-02-27 10:11:26