更新:已解决
大家好,谢谢您的支持。最终我找出了问题所在。就是-同源问题。
================================================== ================== **
我已经在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;
}
请帮助我解决此问题。 谢谢。
答案 0 :(得分:1)
会话存储仅限于特定选项卡。 “会话存储”中的数据可在“应用程序运行”选项卡中访问,因此,如果您尝试在另一个选项卡中访问它,则将获得未定义的数据或数据不存在。
如果您有大数据,则可以使用本地存储,否则,您也可以使用cookie。
答案 1 :(得分:1)
根据W3C学校:
sessionStorage对象仅存储一个会话的数据(关闭浏览器选项卡时,该数据将被删除)。
请参阅:https://www.w3schools.com/jsref/prop_win_sessionstorage.asp。
因此,期望sessionStorage
中的数据仅可用于设置数据的标签。如果您希望数据在各个选项卡之间可用,则您需要查看其他选项,例如localStorage
,尽管localStorage
不会在选项卡(即会话)关闭后清除数据。