document.readyState analog for gecko-based browsers
dom-events, domready, gecko, javascript
Solution
No, it's not possible. Sorry. But here's what you can do. If you can't test for stuff you want to be there before acting:
window.setTimeout(function () {
// do your stuff here
}, 0);
(This will definitely do it after the page renders, but it might be after onload, not after DOMContentLoaded.)
If you do know how to test for what you're looking for:
(function () {
if (/* test if what you're looking for is there */) {
// do your stuff
} else {
window.setTimeout(arguments.callee, 0);
}
})();
This will do it immediately, unless whatever you're looking for is not there, in which case it will wait until after the onload event.
Edit:
Check out this solution.
What it does is, in the edge cases, checks if the last element of document.getElementsByTagName("*") is undefined or not. And that seems to work for him, even in Opera.
Problem
IE has attribute `readyState` in document object, that indicates current state, e.g. "loading", "complete" etc. Is there any way to find current loading state of document in Mozilla-based browsers? I'm aware of `DOMContentLoaded` event, but it wont fit my situation, as my code can be executed after this event was fired. Added: no, I can't use any framework, and don't confuse with `.readyState` attribute of XHR object. And it's a bookmarklet, so it can be inserted in at any loading stage. Added later: Anyway, it looks like it's not a big issue for me. Because this attribute will be added in FF3.6, and it does not break things badly in Firefox, when you manipulate on unfinished DOM (unlike IE).