首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击load事件按钮

单击load事件按钮
EN

Stack Overflow用户
提问于 2012-08-01 09:44:30
回答 3查看 12.5K关注 0票数 3

我有以下的javascript

代码语言:javascript
复制
function onLoad() {
    if (!(document.applets && document.VLVChart && document.VLVChart.isActive())) {
        setTimeout('onLoad()', 200);
        return;
    }
    objChart = document.VLVChart;
    PollEvent();
}

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

然后当HTML页面被加载-

代码语言:javascript
复制
<body onLoad="onLoad()">

在执行fan()函数的HTML中有一个按钮-

代码语言:javascript
复制
<input type='button' value='Fan' onClick='fan();'>

我是否有可能在onload事件中激活fan()函数,这样用户就不必单击按钮了?

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

代码语言:javascript
复制
objChart.reorganize();

fan()函数中存在错误-

代码语言:javascript
复制
SCRIPT5007: Unable to get value of the property 'reorganize': object is null or undefined 

这很奇怪,因为当我手动单击页面上的按钮时,该函数可以正常工作。

解决方案经过大量的绞尽脑汁之后,我意识到在页面(更确切地说是objChart)完全加载之前,我正在尝试加载fan()函数。因此,为什么在onLoad事件中添加函数不起作用。我加了一个setTimeout -

代码语言:javascript
复制
function Fan()
{
setTimeout(function(){objChart.reorganize();},3000);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 09:46:38

代码语言:javascript
复制
<body onload='onLoad(); fan();'>...

然而,最好避免内联JS,您最好开始研究集中的事件管理。这样做有各种好处。

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

代码语言:javascript
复制
$(function() {
    $('body').on('load', function() {
        onLoad();
        fan();
    });
});
票数 3
EN

Stack Overflow用户

发布于 2012-08-01 09:47:57

读到你的问题我猜你都没试过。只需在onLoad()-function中调用该函数:

代码语言:javascript
复制
function onLoad()
{
    fan();
    /* … */
}
票数 0
EN

Stack Overflow用户

发布于 2012-08-01 09:49:18

是。

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

如果使用jQuery,还可以在头部插入一个脚本,其中包含:

代码语言:javascript
复制
$(function(){
   ...
});

jQuery函数实际上是在前面触发的,正如这里解释的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11756606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档