Javascript中的onLoad函数

时间:2012-10-01 18:18:27

标签: javascript

我使用以下代码显示或隐藏表格,具体取决于是否选中了复选框。

<body onload="document.f.firstfield.focus(),showOnLoad();">

我的Javascript是:

function showOnLoad(){
        if((document.getElementById('chk').checked)){
            document.getElementById('div1').style.display = "block";}else{
        document.getElementById('div1').style.display = "none";}
    }

它的工作正常至此。但是,现在我想使用另一个函数showSomething(),它具有与上面相同的功能,但用于不同的复选框和不同的表。

当我将代码行更改为:

<body onload="document.f.firstfield.focus(),showSomething(),showOnLoad();">

这两个功能都不起作用。我怎样才能使它们一起工作? 任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:5)

您需要使用;来终止函数调用。使用:

document.f.firstfield.focus();showSomething();showOnLoad();

在普通的javascript(非内嵌HTML)中,您可以使用换行符或;(您可以通过Google搜索更多地了解这一点......也许http://mislav.uniqpath.com/2010/05/semicolons/会有所帮助)。当您想使用内联Javascript但需要多个语句时,必须使用;,从未用于此类目的。

并不重要......它只是偏好...但是我会创建一个你调用的泛型函数,比如bodyLoad,这三个语句都会被执行(所以HTML会变成{{1当你知道你想要在加载时做的“一切”都在这个函数内部时,你会更容易管理。我还会做其他的事情,但是我会把它留在那里......

答案 1 :(得分:2)

取出逗号,并用分号代替:

<body onload="document.f.firstfield.focus();showSomething();showOnLoad();">

答案 2 :(得分:1)

如果showSomething()函数中抛出错误,则不再执行其他函数;您可以使用浏览器的JavaScript控制台检查是否有任何错误(大多数浏览器都有它们; Firebug,Chrome,IE上的F12等)

一个想法是将函数体包装在try-catch中:

function showSomething()
{
    try {
        // your code
    } catch (e) {
        alert(e);
    }
}