我正在为 Android 和 Chrome开发一个 HTML5 应用程序。我遇到的问题源于跟踪打开的浏览器选项卡的要求。我通过创建存储在每个选项卡的 sessionStorage 中的唯一 ID 来做到这一点。然后,我通过在每个选项卡都可以访问的 localStorage 数组中注册每个 ID 来跟踪打开的选项卡。
问题是使用 window.onunload 事件关闭选项卡时,我无法从 localStorage 中删除 ID。该代码在桌面 Chrome 中运行良好,但我无法在 Android 中运行。
$(window).on('beforeunload', function () {
removeWindowGUID();
});
function removeWindowGUID() {
var guid = sessionStorage.getItem("WindowGUID");
var tmp = JSON.parse(localStorage.getItem("WindowGUIDs"));
tmp = tmp.remove(guid); // remove is a custom prototype fn
localStorage.setItem("WindowGUIDs", JSON.stringify(tmp));
}
重新加载页面时会触发此事件,这很好,只是不会在关闭时触发。我也尝试过使用 pagehide 事件。