2020-10-25 12:01:27 -07:00

58 lines
1.5 KiB
JavaScript

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 li = document.createElement("li");
li.setAttribute("index", i);
li.textContent = pageLinks[i].text + " " + pageLinks[i].href;
linkel.appendChild(li);
}
}
function filter(inputID, ulID) {
var input, filter, ul, li, i, txtValue;
input = document.getElementById(inputID);
ul = document.getElementById(ulID);
filter = input.value.toUpperCase();
ul = document.getElementById(ulID);
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
txtValue = li[i].textContent || li[i].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}
browser.runtime.onMessage.addListener(getlinks)
document.getElementById("linkFilter").onkeyup = function() {
filter('linkFilter', 'links')
}