这是我的代码:
function pushState() {
...snip... (SelectedMenuID has a value of 8)
var stateObj = { selectedMenu: SelectedMenuID };
history.pushState(stateObj, "The title to use", path);
}
window.onpopstate = function(event) {
if (event.state != null) {
alert(event.state.selectedMenu);
}
};
有几个问题:
the title to use
,因为我希望undefined
而不是8
正如我所料答案 0 :(得分:3)
根据https://github.com/browserstate/history.js/wiki/The-State-of-the-HTML5-History-API,目前没有浏览器根据pushState()
中的值更新网页标题。我个人认为这是正确的行为 - 页面标题应反映页眉中的<title>
元素。
当您调用pushState()
然后使用后退按钮时,您不会返回到上一个pushState(实际上是当前状态),而是回到之前的状态。在你的情况下,听起来你在页面加载时看到状态,这就是为什么selectedMenu未定义的原因。
顺便说一句,只有Chrome才能在onpopstate上启动以匹配初始页面加载,因此在其他浏览器中我不希望看到警报。