Этот подход - самый короткий путь, который я могу придумать.
Решение, основанное на событии DOMContentLoaded, работает только в том случае, если сценарий загружается перед документом, в то время как предлагаемая здесь ленивая проверка гарантирует, что код всегда выполняется, даже в сценариях, загружаемых динамически позже, в точности как документ JQuery готов.
Этот код совместим со всеми браузерами (включая некоторые устаревшие, вплоть до IE6 и Safari для Windows).
(function ready() {
if (!document.body) {setTimeout(ready, 50); return;}
// Document is ready here
})();