Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ExtendedJS

Small useful library for extending basic functionality of JavaScript. It contains a lot of extend features based on prototypes, different polyfills and helper functions.

Browsers support: Chrome 45+, FireFox 40+, Safari 8+, IE10+, iOS Safari 8+, Android Browser 4.4+.

Since 1.0.8 version the library exists lite version also without some functionality. This version was done specially for using with JavaScript frameworks such as AngularJS.

How to install

You need to include library javascript file from dist directory on your page

for full version
<scriptsrc="dist/ExtendedJS.min.js"></script>
or for lite version
<scriptsrc="dist/ExtendedJS.lite.min.js"></script>

Library methods and properties

  • NodeList.prototype.indexOf( Element element ), HTMLCollection.prototype.indexOf( Element element ) - Returns element's index in elements collection or -1 if element does'n find
  • Element.prototype.matches( String selector ) - Polyfill for Element.matches method. Returns true if element matches to selector else returns false
  • EventTarget.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element
  • EventTarget.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), Window.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for element which will be executed only one time
  • EventTarget.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event on element
  • NodeList.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEvent( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers for each element of the node list
  • NodeList.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ), HTMLCollection.prototype.addEventOne( [String selector], String events, Function handler, [Boolean capture=false] ) - Attaches one or more space-separated event handlers which will be executed only one time for each element of the node list
  • NodeList.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ), HTMLCollection.prototype.triggerEvent( String event, [Boolean bubbles=true], [Boolean cancelable=true] ) - Triggers event for each element of the node list
  • Element.prototype.getElements( Srting selector ) - Returns node list of elements selected by selector. Alias of querySelectorAll
  • NodeList.prototype.each( Function callback ), HTMLCollection.prototype.each( Function callback ) - Executes callback function one time for each element of list
  • Element.prototype.outerHeight - Returns element's height including padding and border sizes
  • Element.prototype.fullOuterHeight - Returns element's height including padding, border and margin sizes
  • Element.prototype.outerWidth - Returns element's width including padding and border sizes
  • Element.prototype.fullOuterWidth - Returns element's width including padding, border and margin sizes
  • DOMTokenList.prototype.contains( String ...className ) - Returns true if element contains all of passed class names, else returns false
  • DOMTokenList.prototype.containsOne( String ...className ) - Returns true if element contains at least one of passed class names, else returns false
  • DOMTokenList.prototype.toggle( String className, [Boolean condition] ) - Removes class from element and returns false. If class doesn't exist it's added and the returns true. If passed second parameter condition class will add if condition is true or will remove if condition is false
  • DOMTokenList.prototype.add( String ...className ) - Adds support multiple parameters for classList.add method in IE
  • DOMTokenList.prototype.remove( String ...className ) - Adds support multiple parameters for classList.remove method in IE
  • NodeList.prototype.classList.add( String ...className ) - Adds classList.add method into NodeList
  • NodeList.prototype.classList.remove( String ...className ) - Adds classList.remove method into NodeList
  • NodeList.prototype.classList.toggle( String className, [Boolean condition] ) - Adds classList.toggle method into NodeList
  • Element.prototype.remove() - Removes current element
  • NodeList.prototype.remove(), HTMLCollection.prototype.remove() - Removes all elements in collection
  • Element.prototype.parent( [String selector] ) - Returns parent element or null if it doesn't exist. If passed selector then returns first parent element which matches to selector or null if such element doesn't exist
  • Element.prototype.parents( [String selector] ) - Returns list of all parent elements. If passed selector then returns only parent elements which match to selector
  • Element.prototype.next( [String selector] ) - Returns next element or null if next element doesn't exist. If passed selector then returns first next element which matches to selector or null if such element doesn't exist
  • Element.prototype.nextAll( [String selector] ) - Returns list of all next elements. If passed selector then returns only next elements which match to selector
  • Element.prototype.prev( [String selector] ) - Returns previous element or null if previous element doesn't exist. If passed selector then returns first previous element which matches to selector or null if such element doesn't exist
  • Element.prototype.prevAll( [String selector] ) - Returns list of all previous elements. If passed selector then returns only previous elements which match to selector
  • Element.prototype.childs( [String selector] ) - Returns list of all element's children. If passed selector then returns only children which match to selector
  • NodeList.prototype.filter( String selector ), HTMLCollection.prototype.filter( String selector ) - Filters NodeList and returns only elements which match selector
  • Node.prototype.insertAfter( Node newElement, Node referenceElement) - Inserts the specified node after the reference node as a child of the current node
  • Node.prototype.prependChild( Node element ) - Inserts the specified node as first child node of the current node
  • Node.prototype.insertBeforeCurrent( Node element ) - Inserts the specified node before current node
  • Node.prototype.insertAfterCurrent( Node element ) - Inserts the specified node after current node
  • Array.prototype.remove( item ) - Removes element from array. Returns true if item was found and removed
  • RegExp.escape( String string ) - Escapes special characters in passed string
  • window.ExtendedJS.cookies.get( String key ) - Returns value of requested cookie or null if such cookie doesn't exist
  • window.ExtendedJS.cookies.set( String key, value, [Date|Number expires], [String path], [String domain], [Boolean secure=false] ) - Sets cookie
  • window.ExtendedJS.cookies.delete( String key, [String path], [String domain] ) - Deletes cookie
  • window.ExtendedJS.cookies.exists( String key ) - Returns true if cookie exists, else returns false
  • window.ExtendedJS.scroll( Number scroll, [Number duration=0], [Function callback] ) - Scrolls page to passed position by Y axis with animation duration
  • window.ExtendedJS.ajax( [String uri], [Object options] ) - Executes AJAX request to uri with options
  • window.ExtendedJS.ajaxDefaults( Object options ) - Sets default value for ajax options

Objects window.ExJS and window.exjs are aliases for window.ExtendedJS object.

Lite version of ExtendedJS doesn't contain following:

  • objects window.ExtendedJS, window.ExJS and window.exjs
  • methods window.ExtendedJS.cookies.get, window.ExtendedJS.cookies.set, window.ExtendedJS.cookies.delete, window.ExtendedJS.cookies.exists, window.ExtendedJS.scroll, window.ExtendedJS.ajax and window.ExtendedJS.ajaxDefaults
  • properties Element.prototype.outerHeight, Element.prototype.fullOuterHeight, Element.prototype.outerWidth and Element.prototype.fullOuterWidth

About

Small library which extend basic functionality of JavaScript

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages