2011-12-30 13 views
4

iframeのアンロードイベントを削除するにはどうすればできますか?iframeを削除するときにonunloadイベントをトリガーする方法は?

removeChild(iframe)が呼び出されたときに、以下のコードを使用すると、onunloadイベントはトリガーされません。

<!-- parent.html --> 
<html> 
    <head> 
    <title>remove iframe</title> 
    <script type="text/javascript"> 
     window.onload = function() { 
     var button = document.getElementsByTagName("BUTTON")[0]; 
     button.onclick = function() { 
      document.body.removeChild(document.getElementsByTagName("IFRAME")[0]); 
     }; 
     }; 
    </script> 
    </head> 
    <body> 
    <iframe src="./son.html" /> 
    <button>Remove iframe</botton> 
    </body> 
</html> 
<!-- son.html --> 
<html> 
    <head> 
    <title>son html</title> 
    <script type="text/javascript"> 
     window.onload = function() { alert("hello"); }; 
     window.onunload = function() { alert("world!"); }; 
    </script> 
    </head> 
    <body style="background-color:#aaccee;"> 
    </body> 
</html> 

どのようにトリガーできますか?

答えて

8

フレームを削除する前に、iframe要素のsrc属性を "about:blank"に設定してiframeトリガーonunloadイベントを発生させるかどうかを確認できます。

EG:

var iframe = document.getElementsByTagName("IFRAME")[0]; 
iframe.src = "about:blank"; 
document.body.removeChild(iframe); 
+0

それはFirefoxではなく、Chromeで素晴らしい作品。何か案は? – ipinyol

関連する問題