У меня есть эта часть кода (все находится в background.js), которая в основном выполняет javascript на страницах на основе URL-адреса страницы. Он должен работать при нажатии кнопки панели инструментов и команде Ctrl + Q.
Я назначаю его на нажатие кнопки следующим образом, и он работает:
chrome.browserAction.onClicked.addListener(function(tab) {
browser.tabs.query(
{active:true},
function(tabs) {
var tab = tabs[0];
if(tab.url.indexOf("app.fillz.com/orders/edit") != -1){
chrome.tabs.executeScript({
file: "fillz.js"
});
} else if(tab.url.indexOf("amazon") != -1 && tab.url.indexOf("buy/addressselect/handlers/display.html") != -1){
chrome.tabs.executeScript({
file: "amazon.js"
});
}
}
);
});
Проблема в том, что я пытаюсь присвоить тот же код событию onCommand, например:
chrome.commands.onCommand.addListener(function(command) {
if (command == "fills2amazonCopyAndPaste") {
browser.tabs.query(
{active:true},
function(tabs) {
var tab = tabs[0];
if(tab.url.indexOf("app.fillz.com/orders/edit") != -1){
console.log("FILLZ");
chrome.tabs.executeScript({
file: "fillz.js"
});
} else if(tab.url.indexOf("amazon") != -1 && tab.url.indexOf("buy/addressselect/handlers/display.html") != -1){
console.log("AMAZON");
chrome.tabs.executeScript({
file: "amazon.js"
});
}
}
);
}
});
Команда распознается, а также URL-адрес текущей активной вкладки, я проверил ее с помощью этих двух команд console.log() в приведенном выше коде, но сценарии не выполняются, когда я пытаюсь сделать это с помощью команды. В консоли браузера есть только эта ошибка:
Unchecked lastError value: Error: No matching window
исходящий из: //gre/modules/ExtensionUtils.jsm
В чем может быть проблема, я знаю, что мой файл manifest.json в порядке, так как команда распознается, но он просто не выполняет javascript...
@Makyen
, чтобы я был уведомлен об изменении. - person Makyen♦   schedule 16.07.2016