Когда пользователь щелкает значок браузера, должен запускаться spiderSimulator ().
Я могу заставить его работать - один раз.
Например, я нажму на значок, и он сделает то, что должен. Но если я обновлю страницу и нажму на нее второй раз, она не будет работать. если я перейду на другой сайт и попробую еще раз, он не будет работать.
Если я обновляю расширение, обновляю страницу и очищаю кеш, оно снова работает - иногда. это супер противоречиво.
Есть идеи, что здесь происходит?
content.js
// Adds an event listener to the browser icon to sends a message to background.js.
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.message === "clicked_browser_action") {
console.log( 'send message' );
chrome.runtime.sendMessage({"message": "spider_simulator"});
}
}
);
background.js
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function (tab) {
// Send a message to the active tab
chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
var activeTab = tabs[0];
console.log('browser action');
chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
});
});
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.message === "spider_simulator") {
console.log('run the spider');
spiderSimulator()
}
}
);
// removes the site's stylesheet and replaces it with my own;
// turns all page elements into nested list items.
function spiderSimulator() {
console.log( 'inject stylesheet' );
chrome.tabs.insertCSS({
file: 'search-spider-simulator.css'
});
console.log( 'execute script' );
chrome.tabs.executeScript({
file: 'search-spider-simulator.js'
});
window.close();
}