| @@ -29,12 +29,5 @@ function killStickyIfMatch(result) { | |||
| } | |||
| } | |||
| if (!killSticky) return; | |||
| console.log("Killing all stickies!"); | |||
| document.querySelectorAll('body *').forEach(element => { | |||
| if (getComputedStyle(element).position === 'fixed' || | |||
| getComputedStyle(element).position === 'sticky') { | |||
| element.remove(); | |||
| } | |||
| }); | |||
| } | |||
| killSticky(); | |||
| } | |||
| @@ -0,0 +1,41 @@ | |||
| /*******************************/ | |||
| /* EVENT LISTENER MANIPULATION */ | |||
| /*******************************/ | |||
| /* Adds an event listener to a button (or other clickable element), attaching | |||
| it to both "click" and "keyup" events (for use with keyboard navigation). | |||
| Optionally also attaches the listener to the 'mousedown' event, making the | |||
| element activate on mouse down instead of mouse up. */ | |||
| Element.prototype.addActivateEvent = function(func, includeMouseDown) { | |||
| let ael = this.activateEventListener = (event) => { if (event.button === 0 || event.key === ' ') func(event) }; | |||
| if (includeMouseDown) this.addEventListener("mousedown", ael); | |||
| this.addEventListener("click", ael); | |||
| this.addEventListener("keyup", ael); | |||
| } | |||
| /* Removes event listener from a clickable element, automatically detaching it | |||
| from all relevant event types. */ | |||
| Element.prototype.removeActivateEvent = function() { | |||
| let ael = this.activateEventListener; | |||
| this.removeEventListener("mousedown", ael); | |||
| this.removeEventListener("click", ael); | |||
| this.removeEventListener("keyup", ael); | |||
| } | |||
| /***********/ | |||
| /* HELPERS */ | |||
| /***********/ | |||
| function killSticky() { | |||
| console.log("Killing all stickies!"); | |||
| document.querySelectorAll('body *').forEach(element => { | |||
| if (getComputedStyle(element).position === 'fixed' || | |||
| getComputedStyle(element).position === 'sticky') { | |||
| element.remove(); | |||
| } | |||
| }); | |||
| } | |||
| String.prototype.hasPrefix = function (prefix) { | |||
| return (this.lastIndexOf(prefix, 0) === 0); | |||
| } | |||
| @@ -208,5 +208,6 @@ | |||
| </div> | |||
| <p>NOTE: Exclusion patterns override matching patterns; if a page is <em>both</em> matched <em>and</em> excluded, stickies will <strong>not</strong> be killed on that page.</p> | |||
| </body> | |||
| <script src="functions.js"></script> | |||
| <script src="options.js"></script> | |||
| </html> | |||
| @@ -1,27 +1,3 @@ | |||
| /*******************************/ | |||
| /* EVENT LISTENER MANIPULATION */ | |||
| /*******************************/ | |||
| /* Adds an event listener to a button (or other clickable element), attaching | |||
| it to both "click" and "keyup" events (for use with keyboard navigation). | |||
| Optionally also attaches the listener to the 'mousedown' event, making the | |||
| element activate on mouse down instead of mouse up. */ | |||
| Element.prototype.addActivateEvent = function(func, includeMouseDown) { | |||
| let ael = this.activateEventListener = (event) => { if (event.button === 0 || event.key === ' ') func(event) }; | |||
| if (includeMouseDown) this.addEventListener("mousedown", ael); | |||
| this.addEventListener("click", ael); | |||
| this.addEventListener("keyup", ael); | |||
| } | |||
| /* Removes event listener from a clickable element, automatically detaching it | |||
| from all relevant event types. */ | |||
| Element.prototype.removeActivateEvent = function() { | |||
| let ael = this.activateEventListener; | |||
| this.removeEventListener("mousedown", ael); | |||
| this.removeEventListener("click", ael); | |||
| this.removeEventListener("keyup", ael); | |||
| } | |||
| /*******************/ | |||
| /* EVENT LISTENERS */ | |||
| /*******************/ | |||