browser.tabs.executeScript({ code: ` var links = document.links; var pageLinks = []; for (var i = links.length - 1; i >= 0; i--) { if (links[i].href && !links[i].href.includes("javascript:void")) { pageLinks.push({ href: links[i].href, host: links[i].host, hostname: links[i].hostname, origin: links[i].origin, text: links[i].text, }); } } browser.runtime.sendMessage({links: pageLinks}); ` }) function clearChildren(parent) { while (parent.firstChild) { parent.removeChild(parent.firstChild); } } function getlinks(request,sender,sendResponse) { var pageLinks = request.links; var linkel = document.getElementById("links"); clearChildren(linkel); for (var i = pageLinks.length - 1; i >= 0; i--) { var tr = document.createElement("tr"); var tdn = document.createElement("td"); var tdl = document.createElement("td"); tr.setAttribute("index", i); tr.setAttribute("class", "link"); tdn.textContent = pageLinks[i].text; tdn.setAttribute("class", "tdn") tdl.textContent = pageLinks[i].href; tr.appendChild(tdn); tr.appendChild(tdl); linkel.appendChild(tr); } } function filter(inputID, ElementId) { var input, filter, element, tr, i, txtValue; input = document.getElementById(inputID); element = document.getElementById(ElementId); filter = input.value.toUpperCase(); element = document.getElementById(ElementId); tr = element.getElementsByTagName("tr"); for (i = 0; i < tr.length; i++) { txtValue = tr[i].textContent || tr[i].innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { tr[i].style.display = ""; } else { tr[i].style.display = "none"; } } } browser.runtime.onMessage.addListener(getlinks) document.getElementById("linkFilter").onkeyup = function() { filter('linkFilter', 'links') }