68 lines
1.7 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 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')
}