我正在构建Chrome扩展程序,我是这样设计的:
我有一个:
它应该如何工作:后台页面(和相关的js)执行并创建一个HTML表格。
点击浏览器操作弹出图标后,我从后台页面DOM中检索该表(通过getBackgroundPage),然后将其附加到popup.html中。
会发生什么:我第一次点击按钮时,任何工作都可以。
第二次,popup.html不再显示该表(没有表是appendend):所以,我发现background.html仍然存在但是它里面没有更多的表。
backgroundPage会发生什么?
相关代码:
// reference to the background page window
var w = chrome.extension.getBackgroundPage();
console.log(w);
// the background page week table
var newWeek = w.document.getElementById("week");
console.log(newWeek);
// the popup week table
var oldWeek = document.getElementById("week");
// replace popup table with background table (first time it works, second time newWeek is null)
oldWeek.parentNode.replaceChild(newWeek,oldWeek);
答案 0 :(得分:2)
您实际上 将 表从后台页面DOM树移动到弹出DOM树。当弹出窗口关闭时,表格将丢失。您可以尝试添加.cloneNode
,以便获得该表的副本:
var newWeek = w.document.getElementById("week").cloneNode(true);