javascriptでwindow.closeするとき、そのコードが書かれているページがフレーム内にあると、ページが閉じられない

フレームを閉じようとするから、普通にwindow.close();と書いても閉じられない。以下のようにやれば、最上位のウインドウを閉じてくれる。


function closeTopWindow() {
var p = window;
for(i=0; i<10; i++) { //最大10階層上まで見る
if (p == p.parent) break;
p = p.parent;
}
p.close();
}