ポップアップが他のブラウザーでブロックされているかどうかを検出するための JavaScript 手法を認識しています (この質問への回答で説明されているように)。基本的なテストは次のとおりです。
var newWin = window.open(url);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')
{
//POPUP BLOCKED
}
しかし、これは Chrome では機能しません。ポップアップがブロックされている場合、「POPUP BLOCKED」セクションに到達することはありません。
もちろん、Chrome は実際にはポップアップをブロックしないため、テストはある程度機能していますが、「ブロックされた」ポップアップをリストする右下隅の小さな最小化されたウィンドウで開きます。
私がやりたいことは、ポップアップが Chrome のポップアップ ブロッカーによってブロックされたかどうかを確認できるようにすることです。機能の検出を優先して、ブラウザーのスニッフィングを回避しようとしています。ブラウザのスニッフィングなしでこれを行う方法はありますか?
編集newWin.outerHeight
:これを達成するためにnewWin.left
、、、およびその他の同様のプロパティを利用しようとしました。ポップアップがブロックされると、Google Chrome はすべての位置と高さの値を 0 として返します。
残念ながら、ポップアップが実際に不明な時間開かれた場合でも、同じ値が返されます。魔法のような期間 (私のテストでは数秒) の後、場所とサイズの情報が正しい値として返されます。言い換えれば、私はまだこれを理解するのに近づいていません. どんな助けでも大歓迎です。