いつの間にかjavascriptスキーム(疑似プロトコル)でstring以外書き出さなくなってる
前提条件
- ブラウザ
- Firefox 49.0.1
- SRWare Iron 51.0.2700.0
- SRWare Iron 53.0.2800.0
- SRWare Iron 51.0.2700.0
- 実験HTML
<!doctype html> <title>JavaScript URI return value test</title> <ul> <li><a href="javascript:'s'" target="a">string</a> <li><a href="javascript:0" target="a">number</a> <li><a href="javascript:null" target="a">null</a> <li><a href="javascript:false" target="a">boolean</a> <li><a href="javascript:new Function" target="a">function</a> <li><a href="javascript:/./" target="a">RegExp</a> <li><a href="javascript:new Date" target="a">Date</a> <li><a href="javascript:['a']" target="a">Array</a> <li><a href="javascript:{a:1}" target="a">Object</a> </ul> <iframe name="a"></iframe>
javascriptスキームで最後に評価された値が書き出される挙動について
昔はundefined以外の値はdocument.writeしたみたいになったと思うのですが、上記ブラウザでstring以外書き出さなくなっていました。
javascriptスキームの仕様について軽く調べてみたのですが見つけられませんでした。どちらにしても標準化されているわけでもないのでブラウザの挙動に依存せず素直にjavascriptのコードで出力した方がいいかもしれません。