Witam mam pytanie dotyczące chrome extensions. Mam skrypt, który klika przycisk na stronie i wszystko działa poprawnie, ale chciałbym aby skrypt działał na wszystkich otwartych kartach w jednym momencie, bo obecnie muszę przejść na kolejną kartę i ponownie kliknąć wtyczkę aby skrypt znów wcisnął przycisk. Czytałem trochę na ten temat i szukałem odpowiedzi, ale nie umiem tego zrobić. Sądzę tylko, że powinno to być w background.js i trzeba użyć chrome.tabs.query Pomoże ktoś przerobić skrypt tak aby działał we wszystkich kartach jednocześnie?
manifest.json
{
"manifest_version":2,
"name": "Test skryptu",
"permissions": [
"tabs",
"<all_urls>"
],
"version": "0.1",
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js":["content.js"]
}
],
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": "icon.png"
}
}
background.js
console.log('backgground running');
chrome.browserAction.onClicked.addListener(buttonClicked)
function buttonClicked(tab) {
let msg = {
txt: "hello"
}
chrome.tabs.sendMessage(tab.id, msg);
}
content.js
console.log("Chrome extension go?");
chrome.runtime.onMessage.addListener(gotMessage);
function gotMessage(message, sender, sendResponse){
console.log(message.txt);
if(message.txt === "hello") {
let elements = document.querySelectorAll(".btn-minor_inner");
for (let i = 0, element; (element = elements[i]); i++) {
console.log(element);
element.click();
if (elements == "[object NodeList]"){
var rozwin = document.querySelector(".js-table-tr");
console.log(rozwin);
rozwin.click();
setInterval(zapros,1000);
function zapros(){
let elements2 = document.querySelectorAll(".application-form_control.btn-minor.js-create");
for (let x = 0, element2; (element2 = elements2[x]); x++) {
console.log(elements2);
element2.click();
}
}
}
}
}
}
Skrypt nie jest w całości mój. Poskładałem go z kilku innych podobnych skryptów, przerobiłem pod to co potrzebuje i dodałem trochę od siebie. Byłbym bardzo wdzięczny za pomoc, bo męczę się z tym od kilku dni.