window.open()でnameを指定する場合の注意事項

こちらを参照:

http://www.liferium.com/web/?p=10

window.nameは何?ってとこなんだけど、
framesetにつけられたname属性を参照したりするらしい。


window.open()の第2引数に名前を指定をすると、
新しく開いたウィンドウ(windowオブジェクト)に対して名前をつけられる。
で、クリックイベントが発生すると同じ関数を呼び出す複数の要素(ボタンなど)があったとき、
最初のクリックで新しいwindowオブジェクトが作られ、
2回目以降は、最初に開いたウィンドウの中身が置き換えられる。
というわけで、元のウィンドウとは別のウィンドウにしたいけど、
毎回ウィンドウを開くのはやだ、という場合に第2引数を指定すると、
意図通りの動作にできる。


で、この第2引数を指定するときに注意しなければならないのが、最初の引用。
半角英数以外のものが含まれていると、
クリックイベント発生時に、IEのステータスバーにエラーが出るんだけど、とりあえずウィンドウは開く。
だけど、毎回新しいウィンドウが開いてしまう。


今回引っかかったのは、半角スペースだった。
name属性だと思うと、半角スペースは使わないようにするという意識があるが、
制限は半角英数なので、アンダーバーもだめ。
アンダーバーは使いたくなってしまうから注意が必要。


この現象を確認したIEのバージョンは、6と8。