【问题标题】:Why can't save the parsed result into localstorage automatically?为什么不能将解析结果自动保存到本地存储中?
【发布时间】:2016-10-04 11:44:33
【问题描述】:

解析后的锚元素可以通过两步保存到本地存储中。
步骤1
在 chrome 中打开 https://www.yahoo.com/
第二步
运行inspect--console中的代码。

var as=document.getElementsByTagName('a');
var result='';
for(var i=0;i<as.length;i++){
    result +=as[i]+"  ";
 }
localStorage.setItem("parse_anchor", result);

打开localstorage,key为parse_anchor,value为result(一长串)即可。

现在写下面的代码,保存为parse_anchor.html

<html>
<script type="text/javascript">
window.location.href="https://www.yahoo.com/";
var as=document.getElementsByTagName('a');
var result='';
for(var i=0;i<as.length;i++){
     result +=as[i]+"  ";
 }
localStorage.setItem("parse_anchor", result);
</script>
</html>

用chrome打开文件parse_anchor.html时,在chrome的本地存储中看不到键值对。

【问题讨论】:

标签: javascript google-chrome location local-storage


【解决方案1】:

看起来您正在尝试将 DOM 对象数组保存到 localStorage。

localStorage.setItem(key, value);

键和值类型是 [DOMString][1] ,但您正在尝试保存 object | array.

我不知道您要在 localStorage 上存储什么,但这是一个真正有效的 sn-p。

编辑:

window.onload = function(){
    var as=document.getElementsByTagName('a');
    var result='';
    for(var i=0;i<as.length;i++){
         result +=as[i]+"  ";
     }
    localStorage.setItem("parse_anchor", JSON.stringify(result));
}

【讨论】:

  • 我的问题是,当将代码保存为 parse_anchor.html,并打开文件parse_anchor.html 时,本地存储中没有保存解析的锚元素。
  • JSON.stringify(result)); 没关系。
  • localStorage.setItem("parse_anchor", result);localStorage.setItem("parse_anchor", JSON.stringify(result)); 的效果一样。
  • @it_is_a_literature 完全错过了这一点。没有jQuery和其他东西的Web API中最简单的方法是使用window的onload事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2018-11-05
  • 2016-04-29
  • 1970-01-01
相关资源
最近更新 更多