Javascript Chrome扩展、附加元素&;跨页面更改重新追加

Javascript Chrome扩展、附加元素&;跨页面更改重新追加,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我有一个Chrome扩展,当它的按钮被点击时,会在当前页面中添加一个元素。但是,我希望在页面之间保留该元素;i、 例如,如果用户单击链接,则加载新页面,然后追加元素 我尝试使用window.onhashchange检测页面更改,检查元素是否被追加,如果没有,则追加,但这似乎没有任何影响。关于如何做,或者如果可能的话,有什么建议吗?(最好使用javascript,不使用jquery)一些一般性的描述,如: -当用户单击按钮时,添加元素并将消息发送到后台以存储该选项卡(ID) -添加监听器chrom

我有一个Chrome扩展,当它的按钮被点击时,会在当前页面中添加一个元素。但是,我希望在页面之间保留该元素;i、 例如,如果用户单击链接,则加载新页面,然后追加元素


我尝试使用
window.onhashchange
检测页面更改,检查元素是否被追加,如果没有,则追加,但这似乎没有任何影响。关于如何做,或者如果可能的话,有什么建议吗?(最好使用javascript,不使用jquery)

一些一般性的描述,如:
-当用户单击按钮时,添加元素并将消息发送到后台以存储该选项卡(ID)
-添加监听器chrome.tabs.onCreated.addListener&onUpdate(在bg脚本中)
-根据存储的标签测试新创建和更新的标签
-若新创建/更新的选项卡是存储的选项卡(选项卡)的子选项卡,则为元素追加注入脚本或向内容脚本发送消息以追加元素

BG脚本的开头示例:

chrome.tabs.onCreated.addListener(function(tab) {
    console.log('tab id is'+tab.id);
    console.log('opener is'+tab.openerTabId);
});
需要小心的事情:
-如果拖动链接,则OpenerTable未定义(用于拖动链接的扩展)
-这些事件被多次触发,因此如果您要向内容脚本发送消息以附加元素(或注入),请先检查它
差不多

if (yourElement) return;
else //append element
也许有更好/更简单的方法来实现你想要的。。。现在想不起来了

编辑:

单击按钮时实际上不需要初始消息,因为该按钮的侦听器已经在bg脚本中,整个过程非常简单。

谢谢您的建议!我希望有更简单的方法,但如果没有,我一定会把你的答案标记为接受!