Javascript 当我单击时,Chrome.storage.onChanged存储newValue

Javascript 当我单击时,Chrome.storage.onChanged存储newValue,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,my content.js,我从网页发送令牌,外部可连接 我在background.js.My second content.js运行其他网页时设置了该令牌,并调用了令牌,我在background.js中设置了该令牌。当令牌改变时,我监听onChanged方法,当我点击按钮时,我给我newValue。 当我点击按钮给我一个新值,但我的问题是当令牌被改变时,我再次点击给2个旧的和新的令牌。当令牌再次改变时,给3个值 p、 It’我的英语不好,对不起 js(将令牌发送到background.js):

my content.js,我从网页发送令牌,外部可连接 我在background.js.My second content.js运行其他网页时设置了该令牌,并调用了令牌,我在background.js中设置了该令牌。当令牌改变时,我监听onChanged方法,当我点击按钮时,我给我newValue。 当我点击按钮给我一个新值,但我的问题是当令牌被改变时,我再次点击给2个旧的和新的令牌。当令牌再次改变时,给3个值

p、 It’我的英语不好,对不起

js(将令牌发送到background.js):

backgrond.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
   if (request.data)

    chrome.storage.local.set({'token_data': request.data});

  });
js(第二个网页呼叫令牌):

$(文档).ready(函数(){
$(“.info更多”).append($(“”);
chrome.storage.onChanged.addListener(函数(更改,命名空间){
$('.my button')。在('click',function()上{
console.log(更改.token_数据);
});  
});
});

它为您提供了更多值,因为您正在为新消息设置每次单击处理程序

只需将单击处理程序移到消息侦听器之外:

第二个content.js:

$(文档).ready(函数(){
$(“.info更多”).append($(“”);
var代币;
chrome.storage.onChanged.addListener(函数(更改,命名空间){
token=changes.token\u数据;
});
$('.my button')。在('click',function()上{
console.log(令牌);
});  
});

它为您提供了更多值,因为您正在为新消息设置每次单击处理程序

只需将单击处理程序移到消息侦听器之外:

第二个content.js:

$(文档).ready(函数(){
$(“.info更多”).append($(“”);
var代币;
chrome.storage.onChanged.addListener(函数(更改,命名空间){
token=changes.token\u数据;
});
$('.my button')。在('click',function()上{
console.log(令牌);
});  
});
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
   if (request.data)

    chrome.storage.local.set({'token_data': request.data});

  });
$( document ).ready(function() {  
    $(".info-more").append($("<a class='my-button'></a>"));



     chrome.storage.onChanged.addListener(function(changes, namespace) {

      $('.my-button').on('click',function(){

      console.log(changes.token_data);

    });  
 });

});