- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在处理一个客户端问题,Modernizr 意外地没有检测到对 localStorage
的支持Internet Explorer 9 中的对象。我的页面正确使用了 HTML 5 文档类型 (<!DOCTYPE html>
),并且开发人员工具报告该页面具有 IE9 浏览器模式和 IE9 标准文档模式,因此我希望它能正常工作。
我已经调试到以下 try
/catch
阻止 Modernizr 并发现一旦 localStorage
就会抛出 JavaScript 错误对象被访问。
tests['localstorage'] = function() {
try {
localStorage.setItem(mod, mod);
localStorage.removeItem(mod);
return true;
} catch(e) {
return false;
}
};
在某些机器上,JavaScript 错误的消息是 The system cannot find the file specified.
.在其他人身上它只是Invalid argument.
并且 Internet Explorer 在抛出错误之前会阻塞整整 5 分钟。
是什么导致访问 localStorage
反对在 Internet Explorer 上抛出错误?
最佳答案
我发现最低级别的子域是否与记录在 Restrictions on the File Mask and File Name Properties 中的保留设备名称之一相匹配在 Internet Explorer 上访问 localStorage
对象将引发错误。
这个问题很可能会发生,因为在访问 localStorage
对象时,Internet Explorer 在内部尝试使用保留的设备名称访问文件系统以满足 Storage
object initialization steps .
这当然是一种极端情况,但如果您的页面来自服务器,其最低级别的子域恰好是 con
、prn
、aux
, clock$
, nul
, com1
, com2
, com3
, com4
, com5
, com6
, com7
, com8
, com9
, lpt1
, lpt2
, lpt3
, lpt4
, lpt5
, lpt6
、lpt7
、lpt8
或 lpt9
(例如 http://prn.example.com
) 那么这很可能就是您遇到此问题的原因。
在这种情况下选择一个不是保留设备名称的较低级别的子域解决了这个问题。
关于javascript - 为什么在 Internet Explorer 中访问 localStorage 对象会抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392872/
我是 Angular 新手。使用 $localstorage(ngStorage) 是否有任何特定的原因而不是常规的 javascript localstorage 有什么区别。 谁能给我解释一下吗?
这个问题说明了一切。我意识到所有选项都可以在最新的浏览器中使用,但是语义上最好的选择是什么?为什么? 最佳答案 根据 W3C 标准,正确的是 window.localStorage,因为 localS
我想不出一个好的标题,所以希望可以。 我正在做的是创建一个离线 HTML5 webapp。 “出于某些原因”我不希望将某些文件放在缓存 list 中,而是希望将内容放在 localStorage 中。
我最近问了a question about LocalStorage .使用 JSON.parse(localStorage.item) 和 JSON.parse(localStorage['item
我最近问了a question about LocalStorage .使用 JSON.parse(localStorage.item) 和 JSON.parse(localStorage['item
我最近问过a question about LocalStorage 。使用 JSON.parse(localStorage.item) 和 JSON.parse(localStorage['item
我在将本地存储的定价添加到其他字段时遇到问题。如果我将 beforeNoonNPSlot 的价格设置为 2,但我将 matineeNPSlot 的字段留空(它应该保留分配给的任何价格)最后)。然后在我
我需要从 localStorage 对象变量中删除对象键而不从 localStorage 中删除键 let obj = localStorage; let keys = Object.keys(loc
根据我所读到的内容,我希望以下代码能够工作。 此代码是函数的一部分,该函数应该通过用下一个更高的 localStorage 变量覆盖它来删除 localStorage 变量。一旦没有更多内容可供复制,
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: JavaScript property access: dot notation vs. brackets? 我是
编写localStorage['key'] = value或localStorage.setItem('key', value)有区别吗? 我看到了this question标记为重复,但在开发人员工
我一直在做以下事情: var store = window.localStorage; store.setItem() 但现在我看到代码是这样做的: localStorage.setItem() 两者
我在 Chrome 上遇到此错误。不知道为什么会发生。任何帮助!我正在使用 Backbone.localStorage 插件和 Backbone。我在以下行中收到错误: localStorage: B
如果我尝试以下代码: var c = new Backbone.Collection(); c.localStorage = new Backbone.LocalStorage("items");
我想使用 localStorage 存储用户输入值,然后在倒计时器中使用该值。 这是用户输入数据的 HTML: Work Time
我有一个适用于 Mac 和 Linux 用户但不适用于 Windows 用户的 Chrome 扩展程序。当我进入控制台并在 localStorage 中设置一个项目时,它工作正常,但是当用户尝试使用扩
在这里浏览所有问题/答案,但找不到解决我的问题的方法。条件('localStorage' in window)返回 true但是 localStorage 的对象本身仍然是 undefined . 设
使用下面的代码,我创建一个 localstorage 变量,如果未定义,则其键为 quote = 1。然而,当最终使用相同的引号键再次调用它时,即使使用了 Number() 函数,它也会变成 11 而
我上次检查时,以下两行返回 true: null == localStorage["foo"]; null == localStorage.getItem("foo"); 将 null 替换为 und
我正在尝试在 NextJS 静态站点上使用 localStorage,但遇到 localStorage 未定义错误。 我的错误显示组件的代码是: export default function Cat
我是一名优秀的程序员,十分优秀!