Scr*_*t47 32
一旦onload事件触发,下面的代码将执行.该语句检查if的一次性功能已经不被通过使一个标志(在使用前执行hasCodeRunBefore),然后将其存储在localStorage.
window.onload = function () {
if (localStorage.getItem("hasCodeRunBefore") === null) {
/** Your code here. **/
localStorage.setItem("hasCodeRunBefore", true);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果用户localStorage以任何方式清除其浏览器,则该函数将再次运行,因为flag(hasCodeRunBefore)将被删除.
由于运算符和冗长的函数名称,使用可能很繁琐.我创建了一个基本模块来简化这个,所以上面的代码将替换为:localStorage
window.onload = function () {
if (!ls.exists('has_code_run_before')) {
/** Your code here... **/
ls.set.single('has_code_run_before', true);
/** or... you can use a callback. **/
ls.set.single('has_code_run_before', true, function () {
/** Your code here... **/
});
}
};
Run Code Online (Sandbox Code Playgroud)
根据@PatrickRoberts评论,你可以使用in运算符来查看localStorage中是否存在变量键,所以
if (localStorage.getItem('hasCodeRunBefore') === null)
Run Code Online (Sandbox Code Playgroud)
变
if (!('hasCodeRunBefore' in localStorage))
Run Code Online (Sandbox Code Playgroud)
并且更简洁,更清洁.
其次,您可以像设置对象(localStorage.hasCodeRunBefore = true)一样设置值,尽管它将作为字符串存储,而不是布尔值(或者您的值是什么数据类型).
| 归档时间: |
|
| 查看次数: |
36952 次 |
| 最近记录: |