在扩展安装中,选中该复选框,但扩展名不起作用,扩展名开始工作后,用户单击扩展名图标,我希望扩展名无需单击扩展名图标即可开始工作,因为已选中此复选框,因此知道如何解决这个问题吗?
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
}
答案 0 :(得分:1)
最简单的方法是将代码从redirect.js
复制粘贴到background.js
。
但是,如果要模块化代码,可以在清单的“背景”字段下以“脚本”键后的数组形式列出这些脚本。
manifest.json
:
...
"background": {
"scripts": [
"redirect.js",
"background.js"
]
}
...
另一种方法是将后台脚本注册为清单中的html页面,并在该html中包含所有需要的JS脚本。
manifest.json
:
...
"background": {
"page": "background.html"
}
...
...
background.html
:
<script type="text/javascript" src="redirect.js"></script>
<script type="text/javascript" src="background.js"></script>