如何让网页中的JS函数自动执行?

JavaScript015

如何让网页中的JS函数自动执行?,第1张

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,