我是使用 html 5 历史对象的新手。我尝试了以下代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
history.pushState({somethinggoeshere:'but what?'}, 'Does a title go here?', '?begin=true');
window.addEventListener('popstate', function(event) {
console.log('popstate fired!');
console.log(event.state);
});
function dosomething()
{
document.getElementById('box').style.display = 'block';
document.getElementById('iframe').src = 't2.html';
history.pushState({somethinggoeshere:'but what?'}, 'Does a title go here?', '?complete=true');
}
</script>
</head>
<body>
<a onclick="dosomething();">Show box</a>
<div id="box" style="background:red; height:100px; display:none;"></div>
<iframe id="iframe" src="t1.html"></iframe>
</body>
</html>
当我按下 Show box 时,下面会出现一个红色框,并且 iframe 的内容从 t1.html 变为 t2.html。当我在 chrome 浏览器中按下后退按钮时,iframe 的内容会回到 t1.html ,但红色框并没有消失。
为什么后退按钮恢复的是iframe的内容而不是redbox的css样式(返回显示:无);