флажок не работает над расширением Chrome - PullRequest
0 голосов
/ 21 декабря 2018

при установке расширения, флажок установлен, но расширение не работает, расширение начинает работать после, пользователь нажимает на значок расширения, я хочу, чтобы расширение начиналось без нажатия на значок расширения, потому что флажок установлен, somoneзнаете, как это исправить?

popup.html

<div class="Av-AutoChangeButton">Player</div> 
<div class="onoffswitch" style="margin: 0 auto;">
<input type="checkbox" class="PlayerCheckBox onoffswitch-checkbox" id="AvVidPlayer" checked/>
<label class="onoffswitch-label" for="AvVidPlayer">
    <span class="onoffswitch-inner"></span>
    <span class="onoffswitch-switch"></span>
</label>
</div>

popup.js

document.addEventListener('DOMContentLoaded', function() {
    if (window.location.href.match('chrome-extension://')) {
        load();
    }
});

$("body").on("change", ".PlayerCheckBox", function() {
    var status = "";
    $(".PlayerCheckBox").each(function() {
        status = status + ($(this).is(":checked")) + ",";
    });

    save_option(status);
});

function save_option(option) {
    var save = {};
    save[option] = null;
    chrome.storage.sync.set({
        option : option
    }, function() {
        console.log(option + "save");
    });
}

function load() {
    chrome.storage.sync.get(null, function(obj) {
        console.log(obj);
        if (obj.hasOwnProperty("option")) {
            tab = obj.option.split(",");

            console.log(tab);
            var l = 0;
            $(".PlayerCheckBox").each(function() {
                $(".PlayerCheckBox:eq(" + l + ")").prop("checked", parseBoolean(tab[l]));
                l++;
            });
        } else {
        save_option("true,true,true,true,true,true");
        }
    });

}

function parseBoolean(str) {
    return /true/i.test(str);
}

backgrund.js

chrome.runtime.onInstalled.addListener(function(tab) {
   chrome.storage.sync.set({state: 'on'});
});

Я хочузапустить этот скрипт redirect.js

    chrome.storage.sync.get(null, function(obj) {
        if (obj.hasOwnProperty("option")){
            tab = obj.option.split(",");
        if(tab[0]!=='false'){
            AvStreamStart(tab);
            }
        }
    });
function AvStreamStart(tab) {
/* my script here
} 

1 Ответ

0 голосов
/ 21 декабря 2018

Самый простой способ - просто скопировать код из redirect.js в background.js.

Однако, если вы хотите модулировать ваш код, вы можете перечислить эти сценарии в поле «background» манифеста, как массив после ключа «scripts».

manifest.json:

...
"background": {
    "scripts": [
         "redirect.js",
         "background.js"
    ]
}
...

Другой способ - зарегистрировать фоновый скрипт в виде html-страницы в манифесте со всеми необходимыми JS-скриптами, включенными в этот html.

manifest.json:

...
"background": {
    "page": "background.html"
}
...
...

background.html:

<script type="text/javascript" src="redirect.js"></script>

<script type="text/javascript" src="background.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...