-
-
Save ded/841930 to your computer and use it in GitHub Desktop.
function r(f){/in/(document.readyState)?setTimeout(r,9,f):f()} |
@galambalazs,
"window.onload" works on any browser in the planet, this can only emulate "onload" in some browsers and fail with the rest.
It absolutely does not emulate a DOM Ready in any browsers. As an "onload" event alternative is not very performant and:
window.onload = f;
is also much shorter.
@diego - Right, that's what I'm saying, cause the title is "DOM Ready" but this code fails to do that.
yeah. i'm rethinking how this is gonna work now. be back with another implementation
I have recently removed all the UA sniffing I was using in older versions and moved my stable cross-browser solution to GitHub here:
http://github.com/dperini/ContentLoaded
maybe you can have a look at it and compare the outcome. Currently only IFRAMEs do not participate in the optimization. Suggestions are welcome !
Seems to work as described in Safari 5.0.5
Very nice script to my small library.
What is the license?
use this: https://github.com/ded/domready - it's stable with a license too
I can not run this function with /in/.test....
this check will fail if the document stays in "interactive" stage. use /in[^t]/ instead of /in/.
You have a syntax error on /in/(... must be /in/.test(... And the regex expression will return true in 'interactive ' it will only call f() when it's readyState is complete on some cases (file is on browser cache), not when it is loaded. So the best shot is:
function r(f){/(un|ing)/.test(document.readyState)?setTimeout(r,9,f):f()}
Thanks @mjschutz, your version works fine (at least on Chrome).
So far this is the most stable solution I have seen, I tried @dperini but does not appear to work if DOMContentLoaded is already called, by say, jQuery, then it won't work. This small piece of code in the other hand, even though I was concerned by the looping timer, seems to work fine, and doesn't seem to even show up in js profiler, so i think i am liking it. I also like the size.
Doesn't seem to work: http://jsbin.com/ekeba4/ (it acts as
window.onload
)