当我在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?
任何帮助表示赞赏。
答案 0 :(得分:0)
我同意@Duncan Thacker的建议。
该代码不起作用,因为您的HTML文件是本地存储的。要使其与IE和Edge兼容,您需要在任何Web服务器上托管该HTML文件。
出于测试目的,您可以尝试将其托管在IIS服务器上,然后尝试访问您的页面。之后,您的代码即可与IE和Edge一起使用。
不应将其视为问题/错误,因为它是出于安全原因而发生的。
下面是一些链接,可以帮助您在Win 10上安装IIS并将站点托管在IIS上。
(1)How to Install IIS on Windows 8 or Windows 10
(3)How to set up your first IIS Web site
(4)How to Host a Web Site in Internet Information Server manager
让我们知道,如果您在使用IE或Edge托管网站或运行本地存储示例方面仍然遇到任何问题。我们将尝试为您提供更多建议。