调用定义为onload事件的函数

时间:2015-03-27 11:34:10

标签: javascript

我尝试通过以下方式从标记调用函数:

<form onsibmit="actualizeTextFields()">
    <!-- Form's stuff -->
</form>

其中功能定义如下:

window.onload = function actualizeTextFields(){
    //some stuff
};

它不起作用。我认为将名称actualizeTextFields添加到全局Environment record。为什么不是这样?

2 个答案:

答案 0 :(得分:1)

命名函数表达式只创建一个与其名称内部相匹配的变量(由于错误而在旧版本的Internet Explorer中除外)。

函数声明将在当前范围内创建变量。

您可以将代码重写为:

function actualizeTextFields(){
    //some stuff
};
window.onload = actualizeTextFields;

function actualizeTextFields(){
    //some stuff
};
window.addEventListener('load', actualizeTextFields);

答案 1 :(得分:0)

如果将函数赋值给变量或属性,它将成为表达式,如果您将其命名,它将在函数内部是本地的。解决方案是首先定义它:

function actualizeTextFields(){
    //some stuff
}
window.onload = actualizeTextFields;