Commence vigilance for stickies immediately on toggle
This commit is contained in:
parent
cc3fe217bf
commit
4ee4f5f11f
@ -51,26 +51,6 @@ function checkForShouldKillSticky(result) {
|
||||
return shouldKillSticky;
|
||||
}
|
||||
|
||||
/* Some websites add sticky elements after loading, or make existing elements
|
||||
sticky (either on a timer, or based on user actions). CONSTANT VIGILANCE
|
||||
counteracts this behavior, by watching the DOM for mutations, and, if
|
||||
necessary, killing any newly-formed stickies.
|
||||
*/
|
||||
function startConstantVigilance() {
|
||||
var observer = new MutationObserver((mutationsList, observer) => {
|
||||
for (var mutation of mutationsList) {
|
||||
killSticky(mutation.target);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Commencing vigilance for stickies!");
|
||||
observer.observe(document.querySelector("html"), {
|
||||
attributes: true,
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
|
||||
/******************/
|
||||
/* INITIALIZATION */
|
||||
/******************/
|
||||
@ -80,10 +60,6 @@ function initialize() {
|
||||
let shouldKillSticky = checkForShouldKillSticky(result);
|
||||
updateIcon(shouldKillSticky);
|
||||
if (shouldKillSticky) {
|
||||
function beginKillingStickies() {
|
||||
killSticky();
|
||||
startConstantVigilance();
|
||||
}
|
||||
if (document.readyState == "loading") {
|
||||
document.addEventListener("DOMContentLoaded", beginKillingStickies);
|
||||
} else {
|
||||
|
||||
@ -47,13 +47,11 @@ function updateIcon(shouldKillSticky, tabID) {
|
||||
'sticky' or 'fixed', and removes those elements.
|
||||
*/
|
||||
function killSticky(root) {
|
||||
var message = root ? "Killing all stickies!" : "Killing more stickies!";
|
||||
console.log(message);
|
||||
|
||||
root = root || document.querySelector("body");
|
||||
root.querySelectorAll('*').forEach(element => {
|
||||
if (getComputedStyle(element).position === 'fixed' ||
|
||||
getComputedStyle(element).position === 'sticky') {
|
||||
console.log("Killing sticky!");
|
||||
element.remove();
|
||||
}
|
||||
});
|
||||
@ -70,3 +68,31 @@ function restoreScrollability() {
|
||||
container.style.setProperty("overflow-y", "auto", "important");
|
||||
});
|
||||
}
|
||||
|
||||
/* Some websites add sticky elements after loading, or make existing elements
|
||||
sticky (either on a timer, or based on user actions). CONSTANT VIGILANCE
|
||||
counteracts this behavior, by watching the DOM for mutations, and, if
|
||||
necessary, killing any newly-formed stickies.
|
||||
*/
|
||||
function startConstantVigilance() {
|
||||
var observer = new MutationObserver((mutationsList, observer) => {
|
||||
for (var mutation of mutationsList) {
|
||||
killSticky(mutation.target);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Commencing vigilance for stickies!");
|
||||
observer.observe(document.querySelector("html"), {
|
||||
attributes: true,
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
|
||||
/* Immediately kill all stickies, then commence constant vigilance.
|
||||
*/
|
||||
function beginKillingStickies() {
|
||||
killSticky();
|
||||
startConstantVigilance();
|
||||
}
|
||||
|
||||
|
||||
@ -249,7 +249,7 @@ function initialize() {
|
||||
Otherwise, show the reload button. */
|
||||
let shouldKillSticky = AKS.pageMatched && !AKS.pageExcluded;
|
||||
if (AKS.pageMatched && !AKS.pageExcluded) {
|
||||
chrome.tabs.executeScript(null, { code: 'killSticky()' });
|
||||
chrome.tabs.executeScript(null, { code: 'beginKillingStickies()' });
|
||||
reloadButton.classList.toggle("active", false);
|
||||
} else {
|
||||
reloadButton.classList.toggle("active", true);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user