- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个应该在本地使用的简单 HTML/js 应用程序。它使用 localStorage
来存储数据。但由于 Crome 和 Edge 的安全政策,我不能使用它。在 Chromium 浏览器中它工作正常。
所以问题是如何让我的脚本在那些浏览器中工作?我想在不同的机器上使用它,所以使用本地网络服务器对我来说不是一个好的解决方案。我不允许(也不想)在这些机器上安装额外的软件。
UPD 0.假设我们有一个包含以下内容的文件 app.html
:
<script>
window.onload = function () {
try {
localStorage;
}
catch (e) {
console.error("local storage is not available");
return;
}
console.log("this text is never shown in Chrome and Edge");
}
</script>
然后我们用浏览器打开它,按 F12,选择 js console 并查看结果。我不想看到任何错误消息。
UPD 1.说“本地”是指使用了 file:// 协议(protocol)。不是本地网络服务器。
最佳答案
But I cannot use it because of Crome's and Edge's security politics
您是说某些 Chrome 和 Edge 的安全政策会阻止您使用本地存储吗?如果是这样,请解释更多细节。
要在 Microsoft 浏览器中使用本地存储,我们不应阻止浏览器使用 cookie。请引用以下步骤启用它:
更多启用LocalStorage的详细步骤,请查看this article或 this link .
编辑:
使用LocalStorage请引用以下代码:
window.onload = function () {
try {
//check if Browser support storage.
if (typeof (Storage) !== "undefined") {
// Code for localStorage/sessionStorage.
//check if localStorage contains the clickcount
if (localStorage.clickcount) {
//if contains the clickcount key, modify its value.
localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
//else set the default value.
localStorage.clickcount = 1;
}
console.log(localStorage.clickcount);
} else {
// Sorry! No Web Storage support..
console.log("Sorry! This version of Browser not support LocalStorage")
}
}
catch (e) {
console.error("local storage is not available");
return;
}
console.log("this text is never shown in Chrome and Edge");
}
更多详情请查看this tutorial .
编辑 2:
localStorage 或 sessionStorage 特定于页面的协议(protocol)。如果我们使用 file://
协议(protocol)(如果 origin 使用 file: 或 data: 方案),将导致 SecurityError,因此 LocalStorage 无法正常工作。
所以请将您的网页托管到网络服务器(如:IIS),然后访问它。
更多详细信息,请查看Window.localStorage .
关于javascript - 如何在装有 Crome 或 Microsoft Edge 的本地机器上使用 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59282809/
我是 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
我是一名优秀的程序员,十分优秀!