Функция загрузки тела в JavaScript

У меня есть код, который я разместил ниже на своей веб-странице. Как видите, он использует функцию body onload для запуска скрипта. Есть ли способ заставить этот скрипт работать без этого и вместо этого в JavaScript?

<!doctype html>
<html>
<head>

<script type="text/javascript">
function box(query){
return document.getElementById(query)
}
</script>

</head>
<body onload="box('query').focus();">

<input id="query" type="text">

</body>
</html>

Заранее спасибо, Каллум


person Callum Whyte    schedule 01.05.2011    source источник
comment
Поскольку функция onLoad предоставляется JavaScript, вы уже решили свою проблему.   -  person Zian Choy    schedule 02.05.2011
comment
чего ты пытаешься добиться на самом деле   -  person Anupam    schedule 02.05.2011
comment
Вы уже используете JavaScript. И как бы вы сделали что-то с загрузкой, если бы не событие загрузки? Ваш вопрос не имеет смысла в его текущей форме.   -  person no.good.at.coding    schedule 02.05.2011
comment
я просто не могу понять, вы хотите это сделать, но если вам не нравится функция onload, вы можете использовать функцию document.ready jquery, но опять же, нет смысла избегать загрузки в первую очередь   -  person Anupam    schedule 02.05.2011


Ответы (2)



если вы говорите о перехвате события загрузки с записью любого javascript в свой html, вы можете использовать эту функцию:

// Add event
var addEvent = function (obj, evType, fn){
        if (obj.addEventListener){
                obj.addEventListener(evType, fn, false);
                return true;
        }else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
        } else {
                return false;
        }
};

Теперь вы можете запускать все функции, которые вам нужны, в событии onload.

addEvent(window,'load',function () {
   box('query').focus();
   // or
   document.getElementById('query').focus();
});
person Ibu    schedule 01.05.2011