Исчезает модификация Javascript DOM из расширения Chrome - PullRequest
0 голосов
/ 10 июля 2019

Я написал расширение для Chrome, которое извлекает мой список покупок из облачной службы приложения для управления рецептами и добавляет каждый ингредиент на страницу поиска покупок в супермаркете.

Веб-сайт - Tesco Groceries, а я -используя страницу «поиск по списку товаров».

До сих пор мне удалось создать расширение и написать весь код.У меня есть всплывающее окно с кнопкой, которая при нажатии вызывает скрипт содержимого.Сценарий содержимого выполняет вызов фонового сценария, который выполняет фактическую HTTP-выборку через ajax-вызов jQuery и передает результат обратно в сценарий содержимого.

Затем сценарий содержимого наконец выполняет итерацию по результату.Страница списка покупок структурирована как форма, где каждый элемент выглядит как

    <input class="multi-search-form__item-field" data-auto="multisearch-list-item" type="text" id="listItem3" name="listItems" placeholder="" maxlength="99" value="">

Так что я делаю


    for (index in json.result){
        selector = "#listItem" + index;
        $(selector).focus()
          .val(json.result[index].name)
          .attr("value", json.result[index].name)
          .change();        
    }

Это на самом деле работает, и все правильные текстовые элементы появляются ввеб-страница.Однако кнопка отправки не становится активной.

Если я вручную (клавиатура и мышь) изменю любое из текстовых полей listItem, все остальные входные данные текстового поля исчезнут, но отредактированное мной останется.Затем кнопка подтверждения становится активной.

Я заметил, что проверка HTML-документа показывает, что свойство value автоматически завершенных элементов остается пустым, но у измененного вручную правильного значения.Я попытался использовать всевозможные комбинации установки .val, .attr ("val",) и использования focus (), change () и даже пытался эмулировать нажатие клавиши пробела после ввода значения.Ничего не работает.

Например: у меня в списке покупок 3 вещи: молоко, яйца и бобы.Я открываю веб-страницу, нажимаю кнопку в моем расширении, и веб-страница показывает обновленные текстовые поля с молоком, яйцами и бобами, каждое в отдельной строке.Затем я нажимаю на текстовое поле с «яйцами» и нажимаю пробел.Теперь во 2-м поле со списком написано «яйца», но остальные 2 поля остаются пустыми.

Редактировать: В качестве дополнительной заметки, если я просто отправляю форму, она действительно работает, и появляется страница онлайн-покупок срезультат для моего списка.ОДНАКО, первоначальный список содержит только 10 текстовых полей и, кажется, динамически добавляет больше, как только вы начнете вводить текст в поле 9. Тем не менее, программное заполнение этого поля не заставляет его создавать дополнительные текстовые поля, так как мой список ограничен 9 элементами..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...