Javascript For Loop выполняется повторно в плагине Chrome, но только один раз из консоли - PullRequest
0 голосов
/ 05 декабря 2018

Я довольно новичок в расширениях Chrome и бьюсь головой об стену.У меня есть цикл JS for, который выполняется один раз в консоли и работает абсолютно идеально.Однако, когда я добавляю петлю в свой плагин, она зацикливается 42 раза.Вот цикл:

var a;
var b = 0;
$("div").dblclick(function()
{

    for (a=0;a < document.querySelectorAll("div.sectionRowComponent").length;a+=1)
    {
        try
        {
            if(document.querySelectorAll("div.sectionRowComponent")[a].getElementsByTagName("input").length > 0)
            {
            console.log (a + ":" + document.querySelectorAll("div.sectionRowComponent")[a].getElementsByTagName("span")[1].innerText + document.querySelectorAll("div.sectionRowComponent")[a].getElementsByTagName("input")[0].value);
            }
        }

        catch(err)
            {

            }

    }
console.log(b+=1);
console.log(a);

})

Переменная a (сколько компонентов строки раздела) возвращает 162, а переменная b (сколько раз выполняется цикл) возвращает 42.

Как я уже сказал,этот код отлично выполняется в консоли, но 42 раза в плагине.В плагине больше ничего не мешает.Манифест имеет только одну ссылку на файл js, а остальное - HTML5 без какого-либо сценария на данный момент.

Для ясности вот мой манифест:

{
"browser_action": {
      "default_popup": "encrypt.html" //this is an empty file just now
    },

    "content_scripts": [
        {
            "matches": ["https://an.address.zul*", "https://another address.zul"],
            "js": ["jquery-3.3.1.min.js", "theScript.js"]   
        }
    ]

}

РЕДАКТИРОВАТЬ: Извините, я должен добавить, что vars a и b были добавлены только для проверки цикла после начала странного поведения.

1 Ответ

0 голосов
/ 05 декабря 2018

Я изменил ссылку на "div" в обработчике dblclick на явный класс div

$(".className").dblclick(function()

Устранена ошибка.Спасибо всем за их предложения.

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