javascript localstorage

时间:2012-07-02 20:27:38

标签: javascript

所以,这是我的代码:

localStorage.setItem("nhac",for(p=0;p<opener.document.getElementsByName('link').length;p++){opener.document.getElementsByName('link').item(p).style.backgroundColor})

我很困惑我再也想不到了xD,我一整天都在努力做这项工作,我甚至无法解释它,抱歉。 我有一个弹出窗口,我从主页面打开。从弹出窗口中,我正在检索要从中保存背景颜色的元素,因此,通过将其保存在localstorage中,它将始终保持这样。 我做过其他很好的工作,比如这个

localStorage.setItem("color_chosen2", opener.document.getElementById('header').style.color);

我不知道为什么它不起作用,任何人都可以帮助我吗?它给了我一些错误(第一个)

感谢

编辑:(对不起,我发布时很匆忙)  它给出的错误是“SyntaxError:syntax error” (顺便说一下,我使用的是Firefox) 使用javascript控制台,这段代码

for(p=0;p<opener.document.getElementsByName('link').length;p++){opener.document.getElementsByName('link').item(p).style.backgroundColor}

完美地返回元素的背景颜色,但是当我尝试将它用作localStorage中的值时,它会给出错误。 不,语法localStorage.setItem没有问题,它就是这样,谢谢。

Edit2:如果你需要了解它的效果如何,这是我的website。弹出窗口从底部中心的链接打开。

2 个答案:

答案 0 :(得分:1)

您正在尝试将for循环设置为接受String的setter。您必须单独设置每个样式并使用唯一键值。

另外,我认为item不是一种方法......

试试这个......

items = opener.document.getElementsByName('link');
for ( p = 0; p < items.length; p++ ){
     localStorage.setItem( p + 'nhac', items[p].style.backgroundColor );
}

答案 1 :(得分:1)

嗯,没有人真的有效地帮助了我,但至少有2个人试图帮助,所以谢谢你。 无论如何,我不知道如何,我有一个想法,而且代码现在适用于任何感兴趣的人:

if(localStorage.getItem("color_chosen3")){
 for(p=0;p<document.getElementsByName('link').length;p++){document.getElementsByName('link').item(p).style.backgroundColor=localStorage.getItem("color_chosen3")}}}

问题解决了,问题关闭......无论如何。感谢