Chrome backgroundPage问题

时间:2014-05-21 10:48:23

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

我正在构建Chrome扩展程序,我是这样设计的:

我有一个:

  • popup.html(browserAction popup);
  • popup.js(包含在popup.html中);
  • background.html(后台脚本);
  • background.js(由background.js包含);

它应该如何工作:后台页面(和相关的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);

1 个答案:

答案 0 :(得分:2)

您实际上 表从后台页面DOM树移动到弹出DOM树。当弹出窗口关闭时,表格将丢失。您可以尝试添加.cloneNode,以便获得该表的副本:

var newWeek = w.document.getElementById("week").cloneNode(true);