标签: web-storage

HTML 5文件系统访问类型错误

我正在开发一个webapp,我正在尝试使用文件系统API访问目录.我需要在根据规范访问目录之前向用户请求配额.我应该这样做:

...
navigator.webkitPersistentStorage.requestQuota(PERSISTENT, 1024*1024, 
function(gB){
   window.requestFileSystem(PERSISTENT, gB, onInitFs, errorHandler);
}, function(e){
   console.log('Error', e);
})
...
Run Code Online (Sandbox Code Playgroud)

每次我这样做,我收到一条**TypeError: Type error**消息.请问我做错了什么?提前致谢.
注意:已经定义了onInitFs和errorHandler我只是没有在这里包含代码.

javascript html5 web-storage html5-filesystem

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

Android 4.0 - > 4.3(包含) - Webview页面之间的Web存储丢失

我正在开发一个Android项目,该项目依赖于WebView来浏览存储在设备上的多个HTML页面,并在需要将输入存储到数据库中时将其提交到webview.

每个页面都包含与jQuery绑定到上一页/下一页的控件,每个页面包含不同类型的输入(复选框,文本字段等).

最后一页包含一个Submit按钮,它使用JSInterface将结果保存在SQLite DB中.

另一个按钮(在自定义顶部导航栏中)提供相同的系统.

可以通过访问包含所有已保存输入的第一页来修改结果,jQuery系统将填充相应的输入.

有关更多详细信息,我正在使用SDK 19并针对4.4.2进行编译,但我曾经使用SDK 15并针对4.2.2进行编译,我没有遇到此问题.

如果有人需要查看已完成的操作,请在简化的系统中查看此JSBin.


问题

我正在使用SessionStorage存储页面之间的输入,我曾经使用过cookie但是当有超过150个键/值对时它们变得不可靠.

我的问题是在某些设备上,SessionStorage在页面之间消失.


测试协议

第一种情况 - 只留在第一页

如果我只留在第一页,填写输入然后发送结果,一切都很好.回来修改为我提供了一个完整的第一页.

第二种情况 - 在页面之间移动

填写第1页后,我转到第2页并填充新输入,然后在页面之间移动,以查看每个页面上的输入是否丢失.一切都到位,但如果我发送结果,则只传输当前页面输入.


Android版测试结果

  • 3.2 - 工程

  • 4.1.2 - 不起作用

  • 4.2.1 - 不起作用

  • 4.3 - 不起作用

  • 4.4.2 - 工程


测试解决方案

  • 覆盖WebViewClientshouldOverrideUrlLoading方法以返回False - 不起作用

  • 使用LocalStorage而不是SessionStorage并没有改变一件事

洞察

sessionStorage切换到localStorage没有帮助.

我发现了一些有关Android使用的WebKit版本的有用信息:

Android 3.2.1使用了相当旧的版本,但它有效(v534.13)

4.0到 …

javascript java android web-storage android-webview

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

用户是否可以修改存储在sessionStorage中的变量值

我正在使用客户端JavaScript来使用Web Storage存储一些变量,更具体地说,是sessionStorage.

但是我不确定用户是否可以以任何方式简单地修改这些变量的值?如果是这样,请提供一个如何发生这种情况的例子.

javascript html5 session-storage web-storage

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

localStorage setItem在ipad上不起作用

在我的hydbrid应用程序(Phonegap)中,我试图以非常标准的方式写入localStorage:

window.localStorage.setItem("proDB", JSON.stringify(data));
Run Code Online (Sandbox Code Playgroud)

要么

window.localStorage["proDB"] = JSON.stringify(data);
Run Code Online (Sandbox Code Playgroud)

但它在iPad 2(iOS 7.1)上的Safari上不起作用.

它不起作用,整个应用程序停止.

这是这个ipad的userAgent: 在此输入图像描述

你能帮助我吗 ?

谢谢

javascript html5 web-storage ios

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

检索Web存储中的JSON数据不起作用

可能重复:
在HTML5 localStorage中存储对象

我正在尝试存储在两个文本字段中给出的JSON数据,名称和语音,然后(在页面刷新之后)使用以下代码检索和打印相同字段上的数据.

        function saveData() {
            var saveD = { 
                name: document.getElementById("name").value,
                phone: document.getElementById("phone").value
            }; 

            window.localStorage.setItem("info", saveD);
        } 
        var storedData = window.localStorage.getItem("info");

        document.getElementById("name").value = storedData.name;
        document.getElementById("phone").value = storedData.phone;
Run Code Online (Sandbox Code Playgroud)

怎么了?我在两个字段都得到"未定义".

javascript json web-storage

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

用于网站本地化的Web存储

我正在尝试创建一个网站,在首次访问时显示所选语言页面.在单击语言名称时,语言名称字符串(例如,法语)将存储在Web /本地存储中.当用户下次访问网站时,将检查语言字符串并显示特定的语言页面.我已经写了十二个函数来存储语言字符串,点击每种语言的锚标签.像这样:

function english()
{
if(typeof(Storage)!=="undefined")
  {
  localStorage.clear();
  localStorage.language="English";
 window.location.reload();
  }
}

function french()
{
if(typeof(Storage)!=="undefined")
  {
  localStorage.clear();
  localStorage.language="French";
  window.location.href = "french.html";
  }
}
Run Code Online (Sandbox Code Playgroud)

这种方法真的很有效吗?我认为为多种语言创建多个页面有利于SEO,而不是动态更改文本字符串.在我查看Chrome开发人员控制台时,此处会存储字符串的值.但是当我关闭选项卡或浏览器窗口时,存储的值就消失了,下次它就不能记住语言了.

我正在使用此代码检查语言(我必须使用12种语言):

window.onload = function() {
if (localStorage.language="Language")
  {
   window.location.href = "language.html";
  }
else if (localStorage.language="English")
  {
   window.location.href = "eng.html";
  }
else if (localStorage.language="French")
  {
  window.location.href = "french.html";
  }
else if (localStorage.language="Spanish")
  {
  window.location.href = "spanish.html";
  }
Run Code Online (Sandbox Code Playgroud)

在检查第一个'if'条件后,代码有点停止,true或false它只是在那里停止,并且不检查超出该条件的'else if'条件.

有人可以帮帮我吗?即使在浏览器关闭后,示例代码似乎也将值存储在Web存储中,但我无法在我的存储中复制它.

javascript html5 localization local-storage web-storage

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

确定是否支持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
查看次数

如何从indexedDB获取objectstore?

我在我的应用程序上有indexedDb用于网络存储.

我想通过以下代码获取商店.

var store = myapp.indexedDB.db.transaction(['tree_nodes'],'readwrite').objectStore('tree_nodes'); 
Run Code Online (Sandbox Code Playgroud)

它返回错误.我以打开indexeddb数据库和版本更改而闻名.

错误是 Uncaught TypeError: Cannot call method 'transaction' of null

我用破发点试了一下.在这种情况下,它工作正常没有错误.

我怎么去商店?请帮我.

提前致谢!

html5 local-storage web-storage indexeddb

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

将项目添加/附加到localstorage/web存储中?

我知道localstorage只是一个带getItemsetItem的简单哈希映射.如果我的Item是JSON数组并且我只想在数组的末尾添加一个项,该怎么办?是否有更有效的方式,而不是再setItem要一次入境?

html5 local-storage web-storage

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

IndexedDB - 打开数据库时成功后无法传递变量

我一直在寻求有关为 Web 存储设置 IndexedDB 的帮助,但遇到了一个找不到好的答案的问题。成功设置/打开数据库后,我无法传递包含数据库信息的变量以供稍后访问。这是我的代码,我一直在遵循 MDN 的指南:

const DB_NAME = 'database-name';
const DB_VERSION = 2;
const DB_STORE_NAME = 'users';

var db;

function openDb() {
   console.log('openDb ...')
   var request = indexedDB.open(DB_NAME, DB_VERSION);

   request.onsuccess = function(event) {
       db = request.result;
       console.log("openDb DONE");
   };

   request.onerror = function(event) {
       console.log(request.errorCode);
   };

   request.onupgradeneeded = function(event) {
       console.log('openDb.onupgradeneeded');
       var store = event.currentTarget.result.createObjectStore(DB_STORE_NAME, { keyPath: 'id',    autoIncrement: true });

       store.createIndex('age', 'age', { unique: false });
   };
}

function getObjectStore(store_name, mode) {
    var tx = db.transaction(store_name, mode);
    return …
Run Code Online (Sandbox Code Playgroud)

html javascript web-storage indexeddb

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

JWT的安全性如何

我知道这个问题并不是什么新鲜事,可能已经在互联网上进行了讨论.

我是新手,但经过一些研究,我同意这是安全的,因为匿名可以嗅到令牌,但无法在其上附加任何内容.我打算将JWT存储在HTML5Storage中,并对有效负载进行解码以获取一些敏感信息:DisplayName,email_address和role_info等.

这是我的问题,匿名嗅闻我的JWT令牌并代表我行事?如果可能,我该如何避免?

token web-storage jwt firebase-security json-web-token

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