点击加载事件按钮

Click button on load event

本文关键字:按钮 事件 加载      更新时间:2024-06-04

我有以下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);
}
<body onload='onLoad(); fan();'>...

然而,最好避免内联JS,您最好开始研究集中式事件管理。这有多种优点。

我昨天写的另一个问题的答案概述了为什么会这样。如果jQuery对你来说是新的,那么它就会变得微不足道。

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

读到你的问题,我想你根本没有尝试过。只需从onLoad()-函数中调用该函数:

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

是。

您可以按照Utkanos的建议使用<body onload='onLoad(); fan();'>

如果你使用jQuery,你也可以在头部粘贴一个包含以下内容的脚本:

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

正如这里所解释的,jQuery函数实际上早就启动了。