-
-
Save chrisjlee/8960575 to your computer and use it in GitHub Desktop.
if (!document.querySelectorAll) { | |
document.querySelectorAll = function (selectors) { | |
var style = document.createElement('style'), elements = [], element; | |
document.documentElement.firstChild.appendChild(style); | |
document._qsa = []; | |
style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}'; | |
window.scrollBy(0, 0); | |
style.parentNode.removeChild(style); | |
while (document._qsa.length) { | |
element = document._qsa.shift(); | |
element.style.removeAttribute('x-qsa'); | |
elements.push(element); | |
} | |
document._qsa = null; | |
return elements; | |
}; | |
} | |
if (!document.querySelector) { | |
document.querySelector = function (selectors) { | |
var elements = document.querySelectorAll(selectors); | |
return (elements.length) ? elements[0] : null; | |
}; | |
} |
Would this be adaptable for use on any Node?
I think you can add ".call(this));" to the end of the function and replace document with "this.document" and window with "this"
What license is this polyfill available as? MIT?
Would like to use it as part of a commercial project. Thanks in advance!
@chrisjlee Now the source you mentioned is at https://github.com/inexorabletash/polyfill/blob/master/polyfill.js#L4599
What's that window.scrollby doing in there? Just curious because it doesn't seem to contribute anything...
@Peppester I'm not sure, but it is probably something that makes the css engine refresh and recompute the rules or something like that I would guess...
What's that window.scrollby doing in there? Just curious because it doesn't seem to contribute anything...
And also scrollBy does not work in IE
Tested this in IE 7. Originally from: https://github.com/inexorabletash/polyfill/blob/master/polyfill.js#L655