我正在开发一个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我只是没有在这里包含代码.
我正在开发一个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页并填充新输入,然后在页面之间移动,以查看每个页面上的输入是否丢失.一切都到位,但如果我发送结果,则只传输当前页面输入.
3.2 - 工程
4.1.2 - 不起作用
4.2.1 - 不起作用
4.3 - 不起作用
4.4.2 - 工程
覆盖WebViewClient的shouldOverrideUrlLoading方法以返回False - 不起作用
使用LocalStorage而不是SessionStorage并没有改变一件事
从sessionStorage切换到localStorage没有帮助.
我发现了一些有关Android使用的WebKit版本的有用信息:
Android 3.2.1使用了相当旧的版本,但它有效(v534.13)
从4.0到 …
我正在使用客户端JavaScript来使用Web Storage存储一些变量,更具体地说,是sessionStorage.
但是我不确定用户是否可以以任何方式简单地修改这些变量的值?如果是这样,请提供一个如何发生这种情况的例子.
在我的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:
你能帮助我吗 ?
谢谢
可能重复:
在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)
怎么了?我在两个字段都得到"未定义".
我正在尝试创建一个网站,在首次访问时显示所选语言页面.在单击语言名称时,语言名称字符串(例如,法语)将存储在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存储中,但我无法在我的存储中复制它.
我需要验证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将引发安全错误。
我在我的应用程序上有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
我用破发点试了一下.在这种情况下,它工作正常没有错误.
我怎么去商店?请帮我.
提前致谢!
我知道localstorage只是一个带getItem
和setItem
的简单哈希映射.如果我的Item是JSON数组并且我只想在数组的末尾添加一个项,该怎么办?是否有更有效的方式,而不是再setItem
要一次入境?
我一直在寻求有关为 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) 我知道这个问题并不是什么新鲜事,可能已经在互联网上进行了讨论.
我是新手,但经过一些研究,我同意这是安全的,因为匿名可以嗅到令牌,但无法在其上附加任何内容.我打算将JWT存储在HTML5Storage中,并对有效负载进行解码以获取一些敏感信息:DisplayName,email_address和role_info等.
这是我的问题,匿名嗅闻我的JWT令牌并代表我行事?如果可能,我该如何避免?
web-storage ×11
javascript ×8
html5 ×6
indexeddb ×2
android ×1
html ×1
ios ×1
java ×1
json ×1
jwt ×1
localization ×1
token ×1