Нажмите кнопку на событии загрузки

У меня есть следующий JavaScript -

function onLoad() {
    if (!(document.applets && document.VLVChart && document.VLVChart.isActive())) {
        setTimeout('onLoad()', 200);
        return;
    }
    objChart = document.VLVChart;
    PollEvent();
}

function fan() {
    objChart.reorganize();
}

А потом, когда HTML-страница загружена -

<body onLoad="onLoad()">

и есть кнопка в HTML, которая выполняет fan() функция -

<input type='button' value='Fan' onClick='fan();'>

Могу ли я активировать fan() функция в событии onload, так что пользователю не нужно нажимать кнопку?

РЕДАКТИРОВАТЬ После попытки предоставления ответов, при отладке код разрывается на строку -

objChart.reorganize();

В пределах fan() функция с ошибкой -

SCRIPT5007: Unable to get value of the property 'reorganize': object is null or undefined 

Это странно, так как, когда я вручную нажимаю кнопку на странице, функция работает нормально.

Решение После большого царапания головы я понял, что пытался загрузить fan() функционировать до полной загрузки страницы (а точнее, objChart). Следовательно, почему добавление функции в onLoad событие не работало. Я добавил setTimeout -

function Fan()
{
setTimeout(function(){objChart.reorganize();},3000);
}

3 ответа

Решение
<body onload='onLoad(); fan();'>...

Однако лучше избегать встроенного JS, и вам стоит начать изучать централизованное управление событиями. Есть различные преимущества для этого.

Ответ, который я написал вчера на другой вопрос, объясняет, почему это так. Что-то вроде jQuery делает это тривиальным, если это ново для вас.

$(function() {
    $('body').on('load', function() {
        onLoad();
        fan();
    });
});

Читая ваш вопрос, я предполагаю, что вы даже не пытались. Просто вызовите эту функцию изнутри вашего onLoad()-функции:

function onLoad()
{
    fan();
    /* … */
}

Да.

Ты можешь использовать <body onload='onLoad(); fan();'> как предполагает Утканос.

Если вы используете jQuery, вы также можете вставить скрипт в голову, содержащий:

$(function(){
   ...
});

Функция jQuery на самом деле срабатывает раньше, как объясняется здесь.

Другие вопросы по тегам