58 lines
1.5 KiB
JavaScript
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')
|
|
}
|