今日はじめて知ったんだけれど、IE6+XP SP2以上でポップアップブロックされ無いためには、onmouseup か onclickをwindow.openのトリガーとして指定しないとだめらしい。何でいまさらそんなこと言うのかと言うと、このページで、ポップアップブロックされてしまったから。
上記ページは、onclickでやってるのになんでポップアップされてるわけ?と思ってソース見てみたら、onclickではなくて、onmousedownで指定してた。
以下のMSDNの人のブログによると、
ユーザーが認識しない動作で開かれるポップアップはダメであると。ユーザーがクリックしたと認識するのは、マウスをクリックし、離した時である。よって、onmousedownは、まだクリックしている途中なのでダメなので、onlickかonmouseupのハンドラを使えとのこと。
意識しないと分からないけど、確かにマウスを押した瞬間にポップアップというのは、マウスを押して、放したときっていうのが正解なのかも。マウス押してる途中でポップアップしちゃったよ!とか思う可能性も無きにしもあらず。
上に上げたポップアップブロックされちゃう例のページは、Dreamweaver標準でついているポップアップのJSっぽいので、ドリのコードをそのまま使う時は要注意ってことか。
This article is about... HTML , XHTML , javascript.window.open , onclick , onmousedown , onmouseup , ポップアップブロック