onerror属性に設定したスクリプトの挙動について
Q&A
Closed
onerror属性の挙動について,調査しても手がかりが掴めなかったので質問させてください.
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
document.cookie = "hello"
</script>
</head>
<body onload=console.log(cookie)>
<img src=broken onerror=console.log(cookie)>
</body>
</html>
上記のhtmlをローカルサーバーで配信して,ブラウザで開くと,bodyタグのonload
属性で実行されるconsole.log
ではReferenceErrorが発生するのに対し,imgタグのonerror
属性ではエラーが発生せず,コンソールにhello
の文字列が表示されます.
(ちなみに,onload
の方でdocument.cookie
と記述すれば,コンソールにhello
と表示されます.)
勝手に補完されているから,と考えるのが妥当なのかなと思うのですが,ググったりリファレンスを見てもそれらしい記述が見当たりません.
上記の挙動について詳しい解説や仕様のソースをご存じの方はいらっしゃいませんでしょうか?
よろしくお願いします.