popup blockされるかされないか

firefoxからbookmarkletでsetTimeout内でwindow.openを呼んだときに、popup blockされるときとされないときがあったので試した結果。

blockされなかった

bookmarkletからのsetTimeout呼び出しが一階層(?という表現でいいのかな
)内で、1秒以内のwindow.open。

var i=1;delay=100;
var gugulu=function(){
 if(i){
  setTimeout(arguments.callee,delay);
  i--;
 }else{
  window.open("http://www.google.com",'_blank','width=300,height=300,resizable=1,location=1');
 }
};
gugulu();
undefined;

blockされた

bookmarkletからのsetTimeout呼び出しが2階層以上のwindow.open。

var i=2;delay=100;
//以下略


bookmarkletからのsetTimeout呼び出しが1階層以上で一秒より経過後のwindow.open。

var i=1;delay=1001
//以下略

setIntervalでも同様(2回目以降とか)だと思う。