繁体   English   中英

页面加载时调用函数

[英]Calling a function when page loads

我的密码

这是我编写的代码。 页面加载时应调用default函数,而不单击任何按钮。 它应该显示一些数据,然后应该显示两个按钮。 我需要对该代码进行哪些修改?
我是初学者,所以我可能想念很多东西,请帮忙。

这是我的JavaScript部分,链接中提供了详细的程序。

function default(){
var i=7;
j=15;
document.write(i+j);
}

避免使用关键字

您不能使用关键字default

Uncaught SyntaxError: Unexpected token default 

您需要重命名函数。

立即调用函数表达式

完成此操作后,可以将其包装在括号中以立即执行:

(function dflt(){
  var i = 7, j = 15;
  document.write( i + j );
})();

警告:避免document.write

请注意, document.write将清除您的文档,从而删除文档的内容。 您应该改为插入一个新的文本节点,或更新页面上元素的内容:

(function dflt(){
  var i = 7, j = 15;
  document.body.appendChild( document.createTextNode( i + j ) );
})();

您还可以将此文本节点添加到页面上的元素:

var tNode = document.createTextNode( i + j );
document.getElementById("foo").appendChild( tNode );

这会将结果文本添加到id属性为foo任何元素中:

<span id="foo"></span>

您可以使用Immediately Invoked Function Expression

(function defaults() { // I edited the function name - "default" can not be used
    var i = 7;         // You can also remove the function name, will work either
    j = 15;            // way. "default" is a reserved word
    document.write(i + j);
})();

但是它正在调用...您不能在不调用函数的情况下运行函数,是否要用魔术来执行它?

您应该阅读以下内容:

用括号括起来的函数“(function(){});”在javascript中是什么意思?


正如@stakx所指出的,您可以将函数引用传递给函数,以便在X时间后执行该函数,例如setTimeout

setTimeout(defaults, 1000); // execute "defaults" after one second.

但这就像自己处理:

function foo(aFunction){
    aFunction();
}

foo(defaults);

如果您不打算使用jQuery(如@Photon Critical Fatal Error所建议),则可以尝试一下body元素的onload事件

<body onload="default();">
    ...
</body>

虽然这可能无法按预期工作。 jQuery以更可靠的方式处理此问题,因此,如果您决定尝试一下,请查看$(document).ready(…) API函数。

function default(){
    var i=7;
    j=15;
    document.write(i+j);
    }

默认是javascript中的保留字,您不能使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM