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