![如何让网页中的JS函数自动执行?,第1张 如何让网页中的JS函数自动执行?,第1张](/aiimages/%E5%A6%82%E4%BD%95%E8%AE%A9%E7%BD%91%E9%A1%B5%E4%B8%AD%E7%9A%84JS%E5%87%BD%E6%95%B0%E8%87%AA%E5%8A%A8%E6%89%A7%E8%A1%8C%EF%BC%9F.png)
functionn MyAutoRun(){//以下是您的函数的代码,请自行修改先!\x0d\x0aalert("函数自动执行哦!")} 下面,我们就针对上面的函数,让其在网页载入的时候自动运行! ①第一种方法 将如上代码改为: \x0d\x0afunctionn MyAutoRun(){//以下是您的函数的代码,请自行修改先!\x0d\x0aalert("函数自动执行哦!")}window.onload=MyAutoRun//仅需要加这一句\x0d\x0a ②第二种方法 修改网页的Body为: 或者改为: ③第三种方法 使用JS定时器来间断性的执行函数: setTimeout("MyAutoRun()",1000)//隔1000毫秒就执行一次MyAutoRun()函数 实现方法,将最上面的那JS函数,改为: \x0d\x0afunctionn MyAutoRun(){//以下是您的函数的代码,请自行修改先!\x0d\x0aalert("函数自动执行哦!")}setTimeout("MyAutoRun()",1000)//这样就行拉\x0d\x0a 其它的方法比较特殊,也不常用,通用性也不大,偶就不介绍了,拜拜!原因是前半段“function(){alert(1)}”被当成了函数声明,而不是一个函数表达式,从而让后面的“()”变得孤立,产生语法错。按上面的分析,这一段代码虽说没有语法错,但也是不符合我们的预期的,因为这个函数并没有自执行。复制代码代码如下:function(){alert(1)}(1)正确的写法多种多样,也各有利弊:方法1:最前最后加括号复制代码代码如下:(function(){alert(1)}())这是jslint推荐的写法,好处是,能提醒阅读代码的人,这段代码是一个整体。例如,在有语法高亮匹配功能的编辑器里,光标在第一个左括号后时,最后一个右括号也会高亮,看代码的人一眼就可以看到这个整体。不过,对于某些写代码不喜欢在行后加分号的同学,也会形成一些坑坑,例如以下代码会报运行错:复制代码代码如下:var a=1(function(){alert(1)}())方法2:function外面加括号复制代码代码如下:(function(){alert(1)})()这种做法比方法1少了一个代码整体性的好处。方法3:function前面加运算符,常见的是!与void 。复制代码代码如下:!function(){alert(1)}()void function(){alert(2)}()显然,加上“!”或“+”等运算符,写起来是最简单的。加上“void ”要敲五下键盘,但是听说有一个好处是,比加"!"少一次逻辑运算。----我只是听说,不明所以。
this关键字代指当前对象。未必仅指window.
比如:
<body>
<form onsubmit="return checkform(this)">
<input type="text" name="txtbox" />
<input type="button" value="button" onclick="callme(this)"/>
<input type="submit" value="submit" name="btnsubmit"/>
</form>
</body>这里的this指当前的form。
在checkform函数中就可以这么写:
function checkform(form){
if(form.txtbox.value == ""){ alert("no data") return false }
}
在type="button"中,callme函数中的this,代表当前的button对象。
在javascript中写callme函数:
function callme(o){
alert(Object.prototype.toString.call(o)) //结果显示:[object HTMLInputElement]
}
再试着运行这一段:
window.onload = function(){ callme(this) } //结果显示:[object Window],这里的this才是指window
再试着运行这一段:
var m = {
callme: function(){
alert(Object.prototype.toString.call(this))
}
}
window.onload = function(){ m.callme(this) } //结果显示:[object Object],这里的this是指对象m,