我有一个包含iframe的页面.iframe可以获取用户的输入(通过按钮单击或菜单选择)并相应地显示内容.我需要的是,当用户操作iframe时,浏览器会将每组iframe参数推送到历史记录中; 当用户点击后退按钮时,iframe将使用上一个历史记录条目中保存的参数重新加载其内容.我有一段代码正在进行重新加载,如下所示.
奇怪的是,当我在iframe上进行多项设置(因此将多个状态条目添加到历史记录中),然后单击后面时,它会像这样工作,
假设我在历史上有状态4,3,2并且我现在处于状态5
因此,在每次成功恢复状态的点击之后,需要两次点击才能触发popstate事件(我也尝试了statechanged事件,同样的结果)并恢复到另一个先前的状态.
谁知道这里发生了什么?提前致谢.
History.Adapter.bind(window, "popstate",
function (event) {
console.log("----state changed------", History.getState());
console.log("----state data------",History.getState().data.state);
//code to do reload an iframe to its proper state
});
Run Code Online (Sandbox Code Playgroud)