【发布时间】:2017-10-28 15:47:05
【问题描述】:
我正在尝试从 localStorage 获取信息以传递到我的应用程序中的数据库。我在控制台中输入“localStorage”,它会显示正确的值,所以我相信它可以用于检索。但是,由于某种原因,我无法获取数据。现在,变量 rfidText 正在由键盘输入设置。我想通过抓取localStorage中“userID”中的字符串来设置它。下面我在评论中有我尝试过的不起作用的东西。我在 file1 中调用 localStorage.setItem(),在 file2 中调用 localStorage.getItem():有什么想法吗?我的文件 1 的 javascript 是:
/*jslint browser: true*/
/*global $, jQuery*/
$(document).ready(function () {
"use strict";
var scanned = false,
scannedInput = [];
$(window).keypress(function (scanEvent) {
if (scanEvent.which >= 48 && scanEvent.which <= 57) {
scannedInput.push(String.fromCharCode(scanEvent.which));
}
setTimeout(function () {
if (scannedInput.length === 10) {
var userID = scannedInput.join("");
scanned = true;
window.localStorage.setItem('userID', userID);
$("#userId").val(userID);
if (scanned) {
window.location.href = "../html/registration.html";
}
}
scannedInput = [];
}, 500);
});
});
文件2 javascript是:
console.log(window.localStorage.getItem('userID')); // this prints
var rfidText = window.localStorage.getItem('userID');
console.log(rfidText); // this doesn't print
var avatarText = "";
var config = {
apiKey: xxx //private info
authDomain: xxx //private info
databaseURL: xxx //private info
storageBucket: xxx //private info
};
firebase.initializeApp(config);
var database = firebase.database();
function setAvatar(avatarName) {
avatarText = avatarName;
console.log(avatarText);
}
function writeToFirebase(idInput, languageInput, avatarInput, nameInput,
ageGroupInput) {
database.ref("RFID/" + idInput).set({
id: idInput,
language: languageInput,
avatar: avatarInput,
name: nameInput,
ageGroup: ageGroupInput,
});
}
function update() {
var rfidText = document.getElementById("rfidInput").value;
/* instead of the line above, I want to set rfidText with this line
var rfidText = localStorage.getItem("userID"); << doesn't work */
var languageText = document.getElementById("languageInput").value;
var nameText = document.getElementById("nameInput").value;
var ageGroupText = document.getElementById("ageGroupInput").value;
writeToFirebase(rfidText, languageText, avatarText, nameText,
ageGroupText);
}
【问题讨论】:
-
你试过在控制台中运行
localStorage.getItem("userID")吗?如果 localStorage 具有键“userID”的值,似乎应该可以工作。 -
你确定
localStorage.setItem("userID", "some_id")被调用之前update函数被调用? -
@TheThirdOne 我在控制台中输入 localStorage.getItem("userID") 并返回正确的值。
-
@MaazSyedAdeeb localStorage.setItem("userID", "some_id") 在上一页的javascript文件中设置。
-
请在输入“localStorage”后使用“控制台输出”更新您的帖子
标签: javascript html local-storage