Невозможно использовать методы документа после перехода на новую страницу - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать расширение Chrome, которое автоматически выполняет поиск в библиотеке Libgen. Мое всплывающее окно. html спрашивает у пользователя название книги. Из моего всплывающего файла. js я могу извлечь название книги из всплывающего окна. html, ввести его на домашнюю страницу Libgen и нажать кнопку «Отправить». После загрузки результатов поиска я не могу взаимодействовать / получать доступ к результатам страницы, используя методы document, такие как document.getElementsByTagName. Я не могу установить красный фон для каждой строки (мое намерение).

Мой код:

содержимое. js

function make_rows_red()
{
  document.getElementsByTagName("input")[1].click();
  setTimeout(function()
              {
                var rows = document.getElementsByTagName("tr");
                var i;
                for (i = 0; i < rows.length; i++)
                {
                  rows[i].style.backgroundColor = "red";
                }
              },4000);
}

make_rows_red();

манифест. json

{ 
    "name": "book finder",
    "version": "1.0",
    "manifest_version": 2,
    "browser_action": 
        {
            "default_popup": "popup.html",
            "default_title": "book finder"
        },
    "permissions":
    [
        "tabs",
        "input",
        "activeTab",
        "<all_urls>"
    ]
}

всплывающее окно. js

function query(title, author)
{
  chrome.tabs.create({url: "https://libgen.is/"});
  chrome.tabs.executeScript(null,{code: 'document.getElementById("searchform").value=' + '"' + title + '"'});
  chrome.tabs.executeScript(null,{file: 'content.js'});
}

document.addEventListener('DOMContentLoaded', function () {
  document.querySelector('button').addEventListener('click', onclick, false)
  function onclick () {
    const author = document.getElementById("author").value;
    const title = document.getElementById("title").value;
    query(title, author);
  }
}, false)

всплывающее окно. html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
    <label>Title:
    <input type="text" id="title">
    </label><br>
    <label>Author:
    <input type="text" id="author">
    </label>
    <br><br>
    <div style="text-align: center">
    <button id="search">Find my book!</button>
    </div>
    <script src="popup.js" charset="utf-8"></script>
</body>
</html>

Заранее благодарим за помощь.

...