从background.js操作popup.html的DOM

时间:2014-08-10 17:49:04

标签: javascript jquery google-chrome google-chrome-extension

background.js中的代码来操作popup.html中的DOM

var views = chrome.extension.getViews({type: "popup"});
for (var i = 0; i < views.length; i++) {
    views[i].document.getElementById('loginwindow').style.display="none";
    for (var key in userdata) {
      if (userdata.hasOwnProperty(key)) {
         views[i].document.getElementById('projs').innerHTML += "<input value='"+key+"' type='checkbox' /> " + userdata[key] + "<br/>"; 
      }
    }                    
}

userdata是一个像这样的JSON对象:

{"1":"test projekt",
 "4":"Second Project",
 "5":"Third Project",
 "6":"Fourth Project",
 "7":"5th one",
 "8":"6th one dude"}

popup.html中有一个登录框

enter image description here

在上面的代码之后,popup.html正在改变这个,因为我正在从JSON渲染这些项目名称并将它们放在上面的for循环中的popup.html中:

enter image description here

但问题是:一旦我再次点击该图标,再次显示登录窗口,而不是被操纵的。我怎样才能实现这一点,被操纵的人永远留在那里?

这是popup.html里面的html代码,我尝试渲染复选框:

<div id="projs">

</div>

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用两个不同的页面并致电

chrome.browserAction.setPopup({popup: "popup2.html"})?