【发布时间】:2019-07-05 11:05:51
【问题描述】:
当我在 Firefox 中运行此网页时,它运行良好。当页面打开时,它会从第一个框中获取一个名称,将其保存,然后在第二个框中显示该名称。它会按预期打开显示 John 和 Fred 这两个名字。在 Edge 中,它停在指示的 localStorage.setItem 行处。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>data test</title>
<script>
function shift_Data() {
//find the data
var data_source = document.getElementById("data_from_here");
var data_to_save = " ";
data_to_save = data_source.options[1].value;
//save the data
localStorage.setItem("data_saved", data_to_save);
// **** code does not get to here in the Edge browser ****
//retreive the data
var data_target = document.getElementById("data_to_here");
data_target.innerHTML = '';
var the_data_saved = " ";
the_data_saved = localStorage.getItem("data_saved");
//display the data
var option = document.createElement('option');
option.textContent = the_data_saved;
data_target.appendChild(option);
}
</script>
</head>
<body onload="shift_Data()">
<h1>data test 1</h1>
<form id="myForm">
<select id="data_from_here">
<option value="John">John</option>
<option value="Fred">Fred</option>
</select>
<select id="data_to_here">
<option>data is saved here</option>
</select>
</form>
</body>
</html>
如何更改语句以在 Edge 中使用 localStorage?
任何帮助表示赞赏。
【问题讨论】:
-
打开开发者控制台并告诉我们错误是什么。 Edge 的 localStorage.setItem 应该没有问题。查看支持 -> developer.mozilla.org/en-US/docs/Web/API/Storage/setItem
-
您是通过http还是本地文件访问网站?当它是本地文件时,Edge 不会让你使用 localstorage:developer.microsoft.com/en-us/microsoft-edge/platform/issues/…
-
该文件是从计算机硬盘驱动器或记忆棒中使用的。它是用记事本编写的,并保存为 .html,所以它再简单不过了。作为新手,我不知道如何按照 daddygames 的建议打开开发者控制台。我关注了邓肯的链接,并认为这是一个长期存在的问题。这是正确的解释吗?
-
@dan 不,邓肯是正确的。由于您使用的是
file://协议,Edge 不允许使用localStorage,这是兼容的浏览器应该这样做的。 -
谢谢邓肯和帕特里克。您的反馈提高了我对这里发生的事情的认识。
标签: javascript html local-storage microsoft-edge