1

所以,这是我的代码:

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

我很困惑,我无法再思考xD,我整天都在努力使这项工作,我什至无法解释,对不起。我有一个从主页打开的弹出窗口。从弹出窗口中,我检索要保存背景颜色的元素,因此,通过将其保存在本地存储中,它将始终保持不变。我做过其他效果很好的,像这样

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

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

谢谢

编辑:(对不起,当我发布这个时我很着急)它给出的错误是“SyntaxError:语法错误”(顺便说一下,我使用的是firefox)使用javascript控制台,这段代码

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

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

Edit2:如果您需要了解它如何更好地工作,这是我的网站。弹出窗口从底部中心的链接打开。

4

2 回答 2

1

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

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

尝试这个...

items = opener.document.getElementsByName('link');
for ( p = 0; p < items.length; p++ ){
     localStorage.setItem( p + 'nhac', items[p].style.backgroundColor );
}
于 2012-07-02T20:33:54.640 回答
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")}}}

问题解决了,问题结束了……无论如何。谢谢

于 2012-07-03T11:33:03.627 回答