Chrome 拡張機能のコーディングは初めてで、現在、趣味で拡張機能を構築しようとしています。
これが私のmanifest.jsonです
{
"manifest_version": 2,
"name": "LOL",
"version": "0.1",
"background": {
"persistent": false,
"scripts": ["background.js", "back.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"downloads", "downloads.open", "downloads.shelf", "activeTab", "background"
]
}
ここではpopup.htmlに 2 つのラジオ ボタンがあります。クリックすると、background.jsとback.jsが実行されます。
ただし、2 番目のラジオ ボタンを選択しても、background.jsが実行されています。
私が観察した奇妙な動作は次のとおりです。manifest.json でスクリプトの順序を back.js、background.js ..と入れ替えると、どのラジオ ボタンを選択しても、back.jsだけが実行されます。
スクリプトの何が問題なのかわかりません。問題が何であるかを提案してください。
これが私のpopup.jsです
function hello() {
chrome.tabs.executeScript({
file: 'background.js'
});}
function hello2() {
chrome.tabs.executeScript({
file: 'back.js'
});
}
var radio1 = document.getElementById('option1').value;
if (radio1 == "folder1") {
document.getElementById('option1').addEventListener('click', hello);
}
if (radio1 == "folder2") {
document.getElementById('option2').addEventListener('click', hello2);
}
これは background.js です
function alertlol() {
chrome.downloads.onDeterminingFilename.addListener(function(item, suggest) {
suggest({filename: "mysubdirectory/" + item.filename});
});
}
chrome.browserAction.onClicked.addListener(alertlol);
alertlol();
これはback.jsです
function alertlol1() {
chrome.downloads.onDeterminingFilename.addListener(function(item, suggest) {
suggest({filename: "mydir/" + item.filename});
});
}
chrome.browserAction.onClicked.addListener(alertlol1);
alertlol1();
これはpopup.htmlです
<!DOCTYPE html>
<html>
<body style="width: 300px">
Select download folder
</br><input type="radio" name="option1" onclick="background.js" value="folder1">Download folder one </input>
<script type="text/javascript" src="popup.js"></script></br>
<input type="radio" name="option1" onclick="back.js" value="folder2">Download folder two </input>
<script type="text/javascript" src="popup.js"></script>
</body>
</html>
ここにコードベースがあります