やりたいこと
リンクでサイズ指定の別窓展開。ただし技術的制約として下記の条件がある。
- システムの都合上、弄れるのはa要素のhref属性値のみ。
- onclick属性も追加出来ないし、外部jsの読み込みも不可。
成功までの道のり
失敗コード1
<a href="javascript:window.open('hoge.html','new','width=800,height=600'); ">リンク</a>
結果
別窓は開くが、元ページがIE/Fxで [object] という表示に代わる。(Chromeは問題なし)
原因
undefined 以外が返るとページが書き換わるというHTMLの仕様。
下記のMS情報サイトにも同様の言及あり。
失敗コード2
<a href="javascript:window.open('hoge.html','new','width=800,height=600'); return false;">リンク</a>
結果
動かない
原因
関数外でreturnしているため Illegal return statement
エラーが発生。
成功コード
<a href="javascript:window.open('hoge.html','new','width=800,height=600'); void(0);">リンク</a>
結果
別窓が開き、リンク元ページはそのまま(想定通り!)
void 演算子は与えられた式を評価し undefined を返す。