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

时间:2018-09-08 21:15:06

标签: javascript jquery google-chrome-extension background google-chrome-devtools

当我单击我的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!

1 个答案:

答案 0 :(得分: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);
});