Я создаю расширение, которое подсчитывает количество списков на странице и помещает розовую рамку вокруг них. Я хочу отобразить количество списков на странице, во всплывающем окне.
В настоящее время во всплывающем окне отображается количество списков в самом всплывающем окне ..., которое всегда равно 0.
Как узнать количество списков из содержание страницы ?
Вот мой код:
ext = false
var $ulList = document.querySelectorAll('ul')
var $olList = document.querySelectorAll('ol')
var $dlList = document.querySelectorAll('dl')
const $button = document.getElementById('showList')
//This is an empty <div> in the popup
const $textHere = document.getElementById('text-here')
function addListBorders() {
if (ext == false) {
for (let $ul of $ulList) {
$ul.style.border = "5px solid pink"
}
for (let $ol of $olList) {
$ol.style.border = "5px solid pink"
}
for (let $dl of $dlList) {
$dl.style.border = "5px solid hotpink"
}
ext = true
} else {
for (let $ul of $ulList) {
$ul.style.border = "none"
}
for (let $ol of $olList) {
$ol.style.border = "none"
}
for (let $dl of $dlList) {
$dl.style.border = "none"
}
ext = false
}
}
// BROKEN - Does not interact with page content
function listCounter() {
if (ext == false) {
$textHere.innerHTML = `<p>` + 'UL Lists: ' + $ulList.length + `</p>`
} else if (ext == true) {
$textHere.innerHTML = ''
}
}
// WORKS - Counts lists in page content
console.log($ulList)
console.log($ulList.length)
// Adds popup functionality
$button.addEventListener('click', function() {
browser.tabs.executeScript({code: 'addListBorders()'})
if (ext == false) {
$button.textContent = 'Hide Lists'
listCounter()
ext = true
} else if (ext == true) {
$button.textContent = 'Show Lists'
listCounter()
ext = false
}
})