初めて履歴オブジェクトで遊んでいます。クロムでテストしている次のコードがあります。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
window.addEventListener('popstate', function(event) {
console.log('popstate fired!');
console.log(event.state);
});
function showbox()
{
document.getElementById('box').style.display = 'block';
history.pushState({somethinggoeshere:'but what?'}, 'I put text here, but how do i verify the browser has received it?', '?showbox=true');
}
</script>
</head>
<body>
<a onclick="showbox();">Show box</a>
<div id="box" style="background:red; height:100px; display:none;"></div>
</body>
</html>
[ボックスを表示] リンクをクリックすると、赤いボックスが表示されます。Chrome ブラウザー ウィンドウの [戻る] ボタンをクリックして、console.log を確認すると、event.state が null です。なぜヌルなのですか?これに history.pushState を設定しませんでしたか?