单击popup.html上的按钮时运行background.js文件的简单方法

问题描述 投票:1回答:1

当我点击popup.html文件上的一个按钮时,我一直试图在我的background.js文件中运行一个函数,我在网上尝试了一堆例子,到目前为止,没有一个对我有用。

这是我尝试过的:

$(".start-btn").click(function() {

    var task = loadTaskFromStorage($("#select-task").val());

    var checkbox = $('input[type="checkbox"]');
    var autobuy = $(checkbox).prop('checked');
    var delay = $("#checkout-ms").val();
    var count = localStorage.getItem('count');


    chrome.storage.sync.set({'task': task.cells, 'count': count}, function() {

    });

    chrome.storage.sync.set({'autobuy': autobuy, 'delay': delay}, function() {
    });

    chrome.runtime.sendMessage({'run': true);

然后在background.js文件中尝试这样做:

chrome.runtime.onMessage.addListener(function(message, sender) {
  if(!message.run) return;

  finder();
});

function finder() {
    //pulling json info and opening url loop
});

我想chrome.storage.sync.get我保存在popup.js文件中的所有东西然后运行函数..我已经尝试了一堆解决方案,到目前为止没有一个对我有用...

感谢您提前帮助我<3!

javascript jquery google-chrome-extension background google-chrome-devtools
1个回答
0
投票

popup.js

累积数据然后将其发送到后台:

$(".start-btn").click(function() {

    var task = loadTaskFromStorage($("#select-task").val());

    var checkbox = $('input[type="checkbox"]');
    var autobuy = $(checkbox).prop('checked');
    var delay = $("#checkout-ms").val();
    var count = localStorage.getItem('count');

    chrome.runtime.sendMessage({ run: true, data: {
        task: task.cells,
        count,
        autobuy,
        delay
    } });
}

background.js

检索从弹出窗口发送的数据,存储并使用它:

chrome.runtime.onMessage.addListener(function(message, sender) {
    if(!message.run) return;

    var data = message.data;
    chrome.storage.sync.set(data, function() { /* ... */ });
    console.log(data);
});
© www.soinside.com 2019 - 2024. All rights reserved.