我的代码中有一些问题。我的web应用程序运行在AngularJs 1.5上。我有一个带购物车的网店。问题是,应该保存在sessionStorage中并在更新浏览器后恢复的数据在桌面浏览器上可以正常工作,但在iOS (测试过的Chrome和Safari)上完全不能工作。安卓(Chrome)也运行正常。当从iPhone检查MacOS Safari中的代码时,控制台没有抛出任何错误。代码如下:
(function(angular, loc) {
var app = angular.module('myModule', ['ui.bootstrap','ui.mask'])
app.run(function($rootScope) {
window.onbeforeunload = function(event) {
$rootScope.$broadcast('savestate');
};
});
app.factory('basket', ['$rootScope', function($rootScope) {
var basketData = {
content: []
};
function saveState() {
sessionStorage.basket = angular.toJson(basketData.content);
}
function restoreState() {
basketData.content = angular.fromJson(sessionStorage.basket);
}
$rootScope.$on("savestate", saveState);
if (sessionStorage.basket) restoreState();
return basketData;
}]);
...
})(angular, window.location);发布于 2017-01-24 09:10:24
问题是iOS Safari不支持not。Pagehide解决了这个问题。
https://stackoverflow.com/questions/41816822
复制相似问题