Как перейти на новую страницу, изменив URL, продолжая запускать код?

#javascript #google-chrome-extension #html5-history #history.js

#javascript #google-chrome-расширение #html5-история #history.js

Вопрос:

У меня есть расширение Chrome, которое выбирает все элементы на странице и щелкает по ним один за другим. Затем он нажимает на несколько других кнопок на отдельных страницах элементов.

 allItems = document.getElementsByClassName('items');
for (let i = 0; i < allItems.length; i   ) {
    let currentItem = allItems[i];
    currentItem.click();

    // PAUSE, then on the next page click on edit button
    editButton.click();

    // PAUSE, then on the next page click on save button
    saveButton.click();

    // PAUSE, then go back to the home page and click on next item
    homePageButton.click();
}

 

Все это работает нормально (я использую асинхронную функцию, чтобы оставлять паузу между загрузками страницы).

Но теперь я хочу перейти на страницу каждого элемента, изменив URL, а не щелкая по каждому элементу с помощью .click() .

Моя проблема в том, что если я использую что-то вроде window.open, страница перезагружается, и код перестает выполняться.

Как я могу перейти на новую страницу, изменив URL-адрес, и при этом разрешить выполнение моего кода, как это происходит, когда я нажимаю на элементы с помощью .click() ?

Комментарии:

1. window.open открывает новое окно, поэтому неясно, почему текущая страница перезагружается, поскольку они не должны быть связаны. Возможно, в вашем коде есть проблема, покажите ее.

2. Когда открывается новая страница, это новый URL, означающий, что должна загружаться новая страница содержимого. У вас есть разрешение на новый URL? Как только вы нажмете на кнопку открыть, ваша текущая страница содержимого не появится на новой странице.

3. Спасибо @darbid, то, что вы описали, — это именно моя проблема. Есть ли какой-либо способ заставить текущую страницу содержимого перейти на новую страницу?

4. По моему опыту, нет. Новая вкладка новая страница содержимого. Но если есть способ, wOxxOm узнает.

Ответ №1:

Если вы хотите сохранить данные или результаты с нескольких вкладок, фоновый скрипт может быть подходящим местом. Пусть сценарий содержимого выполняет клики, сбор данных и т. Д. И Отправляет данные обратно в фоновые скрипты, где данные будут храниться.