Я разрабатываю расширение для Chrome, которое извлекает список URL-адресов с главной веб-страницы, просматривает URL-адреса, отображает их в новом окне / вкладке и выбирает кнопки на новой странице.Я использую jQuery для очистки списка URL-адресов с главной страницы и кнопок на последующих страницах.Затем я перебираю URL-адреса по одному, ища элемент кнопки, чтобы я мог щелкнуть по нему.Страницы загружаются нормально, но запущенный скрипт контента не имеет доступа к новому активному окну / вкладке.Доступна только основная вкладка.Таким образом, запущенный скрипт контента не может найти кнопку, которую я хочу нажать.Расширение включает в себя popup.html, popup.js, content.js, background.js, background.html и manifest.json.Манифест включает разрешения для вкладок, activeTab и списка веб-адресов.Область сценария содержимого в манифесте содержит список URL-адресов, к которым он обращается.
При запуске popup.html исчезает, но скрипт содержимого запускается по URL-адресам, отображая каждый из них на новой вкладке, но кнопка поиска возвращается как «неопределенная», поэтому событие click завершается неудачно.Любые идеи о том, почему скрипт контента не имеет доступа к новой вкладке и возможные пути ее обхода.
Я исключил проблему с синхронизацией, потому что ждал загрузки страницы, и он так и не нашел кнопку.
Я искал в Интернете последние пару дней.но безрезультатно.это может быть проблема безопасности Google, чтобы сделать.Я пробовал разные способы загрузки страницы.Я попытался загрузить страницу в новом окне, новой вкладке и главной вкладке.Ничего не работаетЯ разработал код для ручного выполнения каждого шага с помощью всплывающей кнопки, и код работает нормально.
// Фрагменты сценария содержимого:
// Фрагмент прослушивателя:
if (msg.text === 'do_display') {
editList();
sendResponse({ count: 1, test_mode: 0 });
}
// Редактировать фрагмент списка:
function editList(){
var links = $("div.item-listing").find("a");
links.each((l) => console.log("href: " + links[l].href));
var count = links.length;
for (let i = 0; i < count; i++) {
LinksArray[i] = links[i].href;
}
work();
};
// Код рабочей функции:
function work() {
if (LinksArray.length === 0) return;
var url = LinksArray.shift();
console.log(url);
openWindow = window.open(url); //WINDOWS OPEN FINE
setTimeout(function () {
var edit = $("button.edit-listing");
console.log("get_edit: " + edit[0]); //FAILS TO FIND BUTTON "UNDEFINED'
getEdit();
}, 3000);
setTimeout(function () {
openWindow.close();
work();
}, 30000);
}
при запуске скрипта содержимого должна быть найдена кнопка, но она не работает.Скрипт, похоже, не ориентирован на новую вкладку.