在sessionStorge上设置的数据在同一选项卡的另一页上不可用

时间:2019-06-10 14:42:09

标签: javascript html dom session-storage

更新:已解决
大家好,谢谢您的支持。最终我找出了问题所在。就是-同源问题。
================================================== ================== **

我已经在sessionStorage上设置了一些数据,并且有一些按钮可以在同一标签上加载另一页。

我的问题是我看不到保存在sessionStorage上的数据。 在调试控制台上,它显示sessionStorage为空。

此函数将数据设置在sessionStorage

function requestDriverListings() {

    var drivers = {};

    sendUserData ({}, "request driver.php", function (request) { listDrivers(request,drivers); console.log(drivers); displayDrivers(drivers);});

    sessionStorage.setItem("drivers", JSON.stringify(drivers.a));

}

此功能在页面加载-“其他页面”上执行

function driverProfile () {
    var driverId = sessionStorage.getItem("requestedDriver");
    var driver = sessionStorage.getItem("drivers");
    driver = JSON.parse(driver);
    console.log(driver);
    driver = driver.driverId;
    document.getElementById("driverName").innerHTML = driver.name;
    document.getElementById("driverVehicle").innerHTML = driver.driverVehicle;
    document.getElementById("driverLocation").innerHTML = driver.driverLocation;
    //document.getElementById("driverDetails").innerHTML = driver.driverDetails;


}

请帮助我解决此问题。 谢谢。

2 个答案:

答案 0 :(得分:1)

会话存储仅限于特定选项卡。 “会话存储”中的数据可在“应用程序运行”选项卡中访问,因此,如果您尝试在另一个选项卡中访问它,则将获得未定义的数据或数据不存在。

如果您有大数据,则可以使用本地存储,否则,您也可以使用cookie。

答案 1 :(得分:1)

根据W3C学校:

  

sessionStorage对象仅存储一个会话的数据(关闭浏览器选项卡时,该数据将被删除)。

请参阅:https://www.w3schools.com/jsref/prop_win_sessionstorage.asp

因此,期望sessionStorage中的数据仅可用于设置数据的标签。如果您希望数据在各个选项卡之间可用,则您需要查看其他选项,例如localStorage,尽管localStorage不会在选项卡(即会话)关闭后清除数据。