单击加载事件上的按钮

时间:2012-08-01 09:44:31

标签: javascript html onload

我有以下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();'>

我是否可以激活onload事件中的fan()函数,以便用户不必点击按钮?

修改 在尝试提供的答案后,调试代码中断行 -

objChart.reorganize();

fan()函数中包含错误 -

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

这很奇怪,因为当我手动点击页面上的按钮时,该功能正常。

解决方案 经过多次努力,我意识到我试图在页面(更具体地说是objChart)完全加载之前加载fan()函数。因此,为什么在onLoad事件中添加函数不起作用。我添加了setTimeout -

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

3 个答案:

答案 0 :(得分:3)

<body onload='onLoad(); fan();'>...

然而,最好避免使用内联JS,您最好开始研究集中式事件管理。这有很多好处。

An answer I wrote yesterday另一个问题概述了为什么会这样。像jQuery这样的东西如果它对你来说是新的那么简单。

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

答案 1 :(得分:0)

阅读你的问题我假设你甚至没有尝试过。只需在onLoad() - 函数中调用该函数:

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

答案 2 :(得分:0)

你可以使用<body onload='onLoad(); fan();'>作为Utkanos的建议。

如果您使用jQuery,您还可以在头部包含以下内容:

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

jQuery函数实际上更早发生,如here所述。