标签: session-storage

确定是否支持Web存储

我需要验证Web Storage API是否受支持并可用(由于安全问题,它可能已被禁用)。

因此,我认为检查是否定义了sessionStorage或localStorage类型就足够了:

if (typeof sessionStorage != 'undefined')
{
    alert('sessionStorage available');
}
else
{
    alert('sessionStorage not available');
}
Run Code Online (Sandbox Code Playgroud)

但是,我想知道这种类型是否可能存在,但无论如何我都无法使用Web Storage API。

备注:我知道,如果禁用cookie并访问sessionStorage或localStorage,Firefox将引发安全错误。

javascript session-storage local-storage web-storage

1
推荐指数
1
解决办法
3769
查看次数

什么可以存储在DOM存储中?

任何对象都可以存储在DOM存储中吗?

当我执行以下操作时:

// where val is a string and response is an array of objects.
sessionStorage.results= { val: response };
Run Code Online (Sandbox Code Playgroud)

当我检查sessionStorage.results我得到的价值"[object Object]"

我可以存储这样的对象吗?或者Storage只存储字符串?

javascript html5 dom session-storage local-storage

1
推荐指数
1
解决办法
1033
查看次数

在整个会话期间保持选中复选框

我有一个表格,我可以在其中选中一个复选框,它将记录该行中的所有内容。页面上有一些搜索功能和其他按钮,所以我想使用会话存储来保持所有选中、选中、刷新过程中的复选框,直到页面关闭。我从我发现的一个例子中得到了一些东西,但它似乎没有用。我怎么能解决这个问题?

带有复选框的表格列/行的 HTML:

<td class="ui-widget-content"><input type="checkbox" class="check" name="check" id="checkid"></td>
Run Code Online (Sandbox Code Playgroud)

JavaScript:

$(function(){
    var test = sessionStorage.input === 'false'? true: false;
    $('input').prop('checked', test || false);

    $('input').on('change', function() {
    sessionStorage.input = $(this).is(':checked');
    console.log($(this).is(':checked'));
});
});
Run Code Online (Sandbox Code Playgroud)

html javascript checkbox jquery session-storage

1
推荐指数
1
解决办法
1962
查看次数

javascript null比较不同的chrome和firefox

我有以下代码:

var a=sessionStorage.getItem("Token");  
alert(a==null);
Run Code Online (Sandbox Code Playgroud)

返回的值是null(如果我alert(a)显示null).问题是alert(a==null)firefox上的显示为TRUE,safari和chrome上的显示为FALSE.WTH?我尝试a===null过同样的结果以及!a.

我做错了什么或者我不知道什么?

谢谢你的帮助.

javascript session-storage

0
推荐指数
1
解决办法
4981
查看次数

如何在jquery中的cookie、会话或本地存储中存储和恢复特定时间的数组

如何将数组的内容存储在 cookie、会话或本地存储中,然后再次恢复或推送到数组中以正常使用。它应该设置为特定时间,并且在该时间之后,它不应该恢复值。

编辑 我尝试了此方法来获取本地存储和会话存储以及数组所需的cookie

var date = new Date();
 var minutes = 30;
 date.setTime(date.getTime() + (minutes * 60 * 1000));
 $.cookie("example", "foo", { expires: date });
Run Code Online (Sandbox Code Playgroud)

javascript cookies jquery session-storage local-storage

0
推荐指数
1
解决办法
2714
查看次数

Javascript布尔操作不起作用

我有一个非常奇怪的问题.我有一个if语句,如下所示:

$rootScope.changeView = function(view){
    $location.path(view); // path not hash
};

$rootScope.$on('$routeChangeStart', function (event, next) {
    console.log(next.requireLogin + " " + LoginService.getUserLoggedIn());
    console.log(next.requireLogin && !LoginService.getUserLoggedIn());

    if(next.requireLogin && !LoginService.getUserLoggedIn()) {
        console.log("No access to panel: not logged in.");

        alert("You need to be logged in as an administrator to see this page!");
        event.preventDefault();

        $timeout(function () {
            $rootScope.changeView("/");
        }, 500);
    }
});
Run Code Online (Sandbox Code Playgroud)

LoginServer.getUserLoggedIn和setUserLoggedIn是这样的:

this.setUserLoggedIn = function(value){
    sessionStorage.userIsLoggedIn = value;
};

this.getUserLoggedIn = function() {
    return sessionStorage.userIsLoggedIn;
};
Run Code Online (Sandbox Code Playgroud)

问题很简单.永远不会调用If语句,即使next.requireLogin为true且LoginService.getUserLoggedIn()为false.控制台中的输出如下:

true false
false
Run Code Online (Sandbox Code Playgroud)

显然"next.requireLogin &&!LoginService.getUserLoggedIn()"的计算结果为false,但两者都是正确的值?如果有帮助,在Chrome控制台中,带有"false"的最后一行会突出显示为紫色.

有谁知道什么是错的?

javascript if-statement session-storage angularjs

0
推荐指数
1
解决办法
61
查看次数

NextJS 与 redux 按预期运行,但它给出警告文本内容不匹配

我正在使用 NextJS 跟踪示例代码 redux 工具包(计数器)并尝试将状态存储到 sessionStorage,它按预期运行,但控制台发出警告
"Warning: Text content did not match. Server: "0" Client: "25"

这是我的 redux 商店:

import counterReducer from "./counterSlice";

const initValue = () => {
  let value = 0;
  if (typeof window !== "undefined") {
    if (sessionStorage.getItem("counter")) {
      value = sessionStorage.getItem("counter");
    }
  }
  return parseInt(value);
};

const preloadedState = {
  counter: {
    value: initValue(),
  },
};

export default configureStore({
  reducer: {
    counter: counterReducer,
  },
  preloadedState,
});
Run Code Online (Sandbox Code Playgroud)

这是我的页面代码:


import { useEffect, useState } from "react";

import { …
Run Code Online (Sandbox Code Playgroud)

session-storage reactjs redux next.js

0
推荐指数
1
解决办法
651
查看次数