LocalStorage不能在iPhone上工作-不能在私人浏览
LocalStorage not working on iPhone - Not in Private Browsing
我试图保存用户输入从文本区域在卸载页面上的本地存储,然后读取它回到一个文本区域,当用户返回。它在桌面浏览器中运行良好,但在我的iPhone上似乎行不通。这与之前已经回答的隐私浏览问题不同。
这里是html:
<html>
<head>
<title>Cookie Test</title>
<link rel="stylesheet" type="text/css" href="css/site.css">
</head>
<body class="full" onload="getText()" onunload="saveText()">
<div class="fullscreen-overlay" id="fullscreen_overlay">
<div class="fullscreen-container js-fullscreen-container">
<div class="textarea-wrap">
<textarea name="fullscreen-contents" id="fullscreen-contents"></textarea>
</div>
</div>
</div>
</body>
</html>
以及获取和写入localstorage的Javascript:
var text = document.getElementById('fullscreen-contents');
function saveText() {
localStorage.savedText = text.value;
console.log("saved");
}
function getText() {
if (localStorage.savedText) {
text.value = localStorage.savedText;
console.log("loaded");
}
}
这是发生在iOS 8和隐私浏览没有打开。知道是怎么回事吗?谢谢!
用onpageshow
和onpagehide
代替onload
和onunload
根据iOS开发者库(Safari文档也是如此),load
和unload
事件已被弃用,建议分别使用pageshow
和pagehide
:
对于向后和向前优化,
load
和unload
事件可能不像预期的那样工作。请使用pageshow
和pagehide
事件。
sessionStorage.setItem('some Key', 'some value');
这可能不适用于某些iPhone和iPad操作系统版本
最好的解决方案是将这段代码放入try和catch中,这样之后的代码就可以运行
try {
sessionStorage.setItem('some Key', 'some value');
}catch(ex) {
// iOS 8.3+
/*Does not support session Storage Correctly;
alert('unsupported'+ex);*/
}
相关文章:
- 不能从angular2中的子组件指定父组件中的数组
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 转义符不能与innerHTML一起使用
- JSON.parse没有'不能使用Javascript
- JS可以在Chrome中工作,但不能在Firefox中工作
- 砌体不能填补小缺口
- javascript扫雷器floodfill算法不能正常工作
- JavaScript指令不能像我想象的那样工作
- 为什么在这个网站上不能通过JS访问元素
- Facebook登录按钮没有'不能在Firefox上工作
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- AngularJS:$q.dedefe()不能由工厂方法共享
- 不能在同一页上进行多个jquery幻灯片切换
- 不能在图像中的地图标记中使用花式框jquery插件的区域标记
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 浏览JSON和绘制圆圈;我不能使用谷歌地图
- unsharp laravel filemanager -不能浏览图像文件夹
- LocalStorage不能在iPhone上工作-不能在私人浏览