window.open()でnameを指定する場合の注意事項
こちらを参照:
window.nameは何?ってとこなんだけど、
framesetにつけられたname属性を参照したりするらしい。
window.open()の第2引数に名前を指定をすると、
新しく開いたウィンドウ(windowオブジェクト)に対して名前をつけられる。
で、クリックイベントが発生すると同じ関数を呼び出す複数の要素(ボタンなど)があったとき、
最初のクリックで新しいwindowオブジェクトが作られ、
2回目以降は、最初に開いたウィンドウの中身が置き換えられる。
というわけで、元のウィンドウとは別のウィンドウにしたいけど、
毎回ウィンドウを開くのはやだ、という場合に第2引数を指定すると、
意図通りの動作にできる。
で、この第2引数を指定するときに注意しなければならないのが、最初の引用。
半角英数以外のものが含まれていると、
クリックイベント発生時に、IEのステータスバーにエラーが出るんだけど、とりあえずウィンドウは開く。
だけど、毎回新しいウィンドウが開いてしまう。
今回引っかかったのは、半角スペースだった。
name属性だと思うと、半角スペースは使わないようにするという意識があるが、
制限は半角英数なので、アンダーバーもだめ。
アンダーバーは使いたくなってしまうから注意が必要。
この現象を確認したIEのバージョンは、6と8。