我试图在页面卸载时将用户输入从本地存储中的文本区域保存,然后在用户返回时将其读回文本区域。它在桌面浏览器中运行良好,但在我的 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>
以及用于获取和写入本地存储的 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 developer library (与 Safari documentation 相同), load
和 unload
事件已弃用,建议使用 pageshow
和 pagehide
分别是:
The
load
andunload
events may not work as expected for back and forward optimization. Use thepageshow
andpagehide
events instead.
关于javascript - LocalStorage 无法在 iPhone 上运行 - 无法在私密浏览中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31416860/