剛看到這篇文章,我也犯暈,實際的原因其實是函數賦值時多了個(),這標明是一個表達式,所以會直接執行函數,小小一個(),奧妙真不小。
js之onload事件的一點使用心得
window.load和window.onload的意思並不只是頁面加載完就執行,那要看你怎么用了,下面做了示例為大家介紹下,感興趣的朋友可以參考下
如果我問你window.load和window.onload分別是什么意思,恐怕你會回答我:“這不是頁面加載完就執行嗎”。
但是答案是不一定,得看你怎么用。看一下例子吧
例1:
代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function ShowMessage()
{
alert("true");
}
window.onload=ShowMessage();
</script>
</head>
<body>
當你看到true時看不到我
</body>
</html>
當你看到true的彈出框的時候,你肯定沒有看到“當你看到true時看不到我”,說明頁面還沒有載入完就已經開始執行js了。
例2
代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
function ShowMessage()
{
alert("true");
}
window.onload=function(){ShowMessage();}
</script>
</head>
<body>
你看到true時就看到我了
</body>
</html>
當你看到true的彈出框的時候,你也會看到“你看到true時就看到我了”,這個才是真正的頁面載入完才觸發。
PS:推薦像onload事件之類的使用匿名函數執行,即window.onload=function(){ShowMessage();}這種形式。