Javascript 从background.js操作popup.html的DOM

Javascript 从background.js操作popup.html的DOM,javascript,jquery,google-chrome,google-chrome-extension,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) { i

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/>"; 
      }
    }                    
}
popup.html中有一个登录框

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/>"; 
      }
    }                    
}

在上面的代码之后,popup.html将更改为此,因为我正在从JSON呈现这些项目名称,并将它们放入上面for循环中的popup.html中:

但问题是:一旦我再次单击图标,登录窗口就会再次出现,而不是被操纵的窗口。我怎样才能做到这一点,被操纵者永远留在那里

这是popup.html中的html代码,我尝试在其中呈现复选框:

<div id="projs">

</div>

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

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

您只在清单中放置默认弹出窗口。您可以将任何html页面设置为弹出窗口。现在我这样测试:
chrome.browserAction.setPopup({popup:popup2.html});var views=chrome.extension.getViews({type:“popup”})但它仍在更改第一个popup.html并打开第二个popup.html,奇怪:(哦,我正在阅读文档,它说:
它设置html文档在用户单击浏览器操作图标时作为弹出窗口打开。
。因此,只有当用户单击图标时,它才会切换模板。这将持续到Chrome关闭。您需要使用Chrome.runtime.onStartup.addListener()并再次设置浏览器操作。我需要更改模板,而不依赖于单击图标。因此,不使用browserAction。是否有其他弹出设置程序?