1. 程式人生 > >HTML頁面載入完畢後執行某個js

HTML頁面載入完畢後執行某個js

1、js方法:

<script type="text/javascript">

window.onload=function(){

alert("html頁面載入完成後一");

}

</script>

2、jQuery方法:(需要引用jQuery檔案支援)

<script type="text/javascript">

$(document).ready(function(){

alert("html頁面載入完成後二");

});

</script>

或者可以簡寫為

<script type="text/javascript">

$(function(){

alert("html頁面載入完成後二");

});

</script>

當dom載入完就可以執行(比window.onload更早)。在同一個頁面裡可以多次出現.ready() 

PS:兩者的主要區別 


window.onload: 

當一個文件完全下載到瀏覽器中時,才會觸發window.onload事件。這意味著頁面上的全部元素對js而言都是可以操作的,也就是說頁面上的所有元素載入完畢才會執行。這種情況對編寫功能性程式碼非常有利,因為無需考慮載入的次序。


$(document).ready{ }: 

會在DOM完全就緒並可以使用時呼叫。雖然這也意味著所有元素對指令碼而言都是可以訪問的,但是,並不意味著所有關聯的檔案都已經下載完畢。換句話說,當HMTL下載完成並解析為DOM樹之後,程式碼就會執行。 

舉一個例子: 

假設有一個表現相簿的頁面,這種頁面中可能會包含許多大型影象,我們可以通過jQuery隱藏、顯示或以其他方式操作這些影象。如果我們通過onload頁面設定介面,那麼使用者在能夠使用這個頁面之前,必須要等到每一幅影象都下載完成。更糟糕的是,如果行為稍微新增給哪些具有預設行為的元素(比如連結),那麼使用者的互動可能會導致意想不到的結果。然而當我們試用$(document).ready(){ }進行設定時,這個介面就會更早地準備好可用的正確行為。 

使用$(document).ready(){ }一般來說都要優於試用onload事件處理程式,但必須要明確一點的是,因為支援檔案可能還沒有家在完成,所以類似影象的高度和寬度這樣的屬性此時不一定有效。 

注:用把js放在頁面底部的方法以及運用defer="defer" 的方法都是會出現問題的。最好使用上面的window.onload函式!

window.onload繫結多個函式

當一個HTML頁面中載入了兩個window.onload=function(){}函式時,頁面只會執行第二個window.onload裡面的內容,如果需要同時繫結多個事件,該如何處理呢?

方案一:

建立一個匿名函式,來容納需要繫結的多個事件,再講這個匿名函式繫結到onload事件上

window.onload = function(){

firstFunction();
secondFunction();

......

}

方案二:

function addEventLoad(func){

var oldOnload = window.onload;

if(typeof window.onload!='function'){

window.onload = func;

}else{

window.onload = function(){

oldOnload();

func();

}

}

}

將現有的window.onload事件處理函式的值存入變數oldOnload:

如果這個處理函式上還沒有繫結函式,則把新函式繫結給它;

如果已經綁定了函式,則把新的函式追加到指令的末尾。

呼叫方法:

addEventLoad(firstFuction);

addEventLoad(secondFuction);

相關推薦

HTML頁面載入完畢執行某個js

在DOM載入完就可以執行(比window.onload更早)。在同一頁面中可以多次出現.ready() 兩者主要區別:Window.onload=function (){}: 當一個文件完全下載到瀏覽器中時,才會觸發window.onload事件。這意味著頁面上的全部元素對js而言都是可以操

HTML頁面載入完畢執行某個js

1、js方法: <script type="text/javascript"> window.onload=function(){ alert("html頁面載入完成後一"); } </script> 2、jQuery方法:(需要引用j

兩種方法實現在HTML頁面載入完畢執行某個js

Js方法:<script type=”text/javascript”> window.onload=function (){ var userName=”xiaoming”; alert(userName); } </script&

JS頁面載入完畢執行的多種方式和比較

做專案的時候可能會遇到這種情況:   一個頁面的中定義了多個onload事件,那麼在此定義window.onload函式的時候可能會不生效或者多個onload之間覆蓋的現象.   有的朋友肯定會說用jQuery的$$(document).ready(func

怎樣在jsp頁面載入時首先執行某個js

假如我們再載入登入頁面時,當載入完成頁面時,把游標指定在使用者名稱那裡 如下所示 一般有兩種做法 1  此方法是游標停留在使用者名稱上 function init(){ var ctrl=docum

Vue.js 關於頁面載入完成執行一個方法的問題

首先我們會想著在mounted或者created裡面加入想要執行的方法,但是有的時候會遇到在你執行這個方法的時候,頁面還並沒有被渲染完成,所以就會出現這個方法在匹配頁面標籤報錯的情況。 解決思路: 1.通過子頁面呼叫父頁面的方法,因為在子頁面開始渲染的時候,你的父頁面肯定

當jsp頁面完全載入完成執行一個js函式

    function openTheIndexPage() {             openMyURIWithCid(true, 'root', 'IDX', "iframe/dispatch.jsp?url=tdc/zhk/impctrlobjinf/index/index.jsp", '首頁',

頁面載入完成執行JS的5種方式

在js和jquery使用中,經常使用到頁面載入完成後執行某一方法。通過整理,大概是五種方式。 1.jQuery的$( function(){} ); 2.jQuery的$(document).rea

頁面完全載入完成執行一個js函式

1、在body中用onload: ? 1 <body onload="myfunction()"> 2、在指令碼中用window.onload: ? 1 2 3 4 5 6 7 8 <script type="text/ja

頁面所有元素載入完成之後執行某個js函式

做專案的時候可能會遇到這種情況:        一個JSP頁面中import了一個目錄檔案(menu.jsp),而且每個頁面的<body>中都定義了onload事件,那麼在此定義window.onload函式的時候可能會不生效或者多個onload之間覆蓋的現象.

js頁面載入完成執行的幾種方式及執行順序

在js和jquery使用中,經常使用到頁面載入完成後執行某一方法。通過整理,大概是五種方式(其中有的只是書寫方式不一樣)。 1:使用jQuery的$(function){};2:使用jquery的$(document).ready(function(){});前兩者本質上沒

如何在頁面載入完畢獲取圖片高度或寬度問題

日前,本技術屌絲又遇到了一個很有意思的問題,應專案要求,需要在頁面載入完畢之後獲取圖片的高度,以此來調整圖片上面的覆蓋層相對於圖片頂端的位置。 但在jquery(function(){  /*XXXXXX*/});裡面寫了之後發現不是很理想,因為當jquery準備就緒的時候

jquery頁面載入完成執行方法

引入jquery 1、$(function(){   $("#a").click(function(){     //adding your code here   }); }); 2、$

實現在html頁面載入之前執行js方法

瀏覽器對html頁面內容的載入是順序載入,也就是在html頁面中前面先載入,因此當載入到JS指令碼時,JS是一種解釋性的指令碼,也是從上而下順序執行,由於這段JS程式碼是立即執行的。 第一種

頁面載入立刻執行JS的兩種方法

方式一:window.onload:當一個文件完全下載到瀏覽器中時,才會觸發window.onload事件。這意味著頁面上的全部元素對js而言都是可以操作的,也就是說頁面上的所有元素載入完畢才會執行。這種情況對編寫功能性程式碼非常有利,因為無需考慮載入的次序。window.o

頁面載入自動執行一個方法的js程式碼

1、在body中用onload: <body onload="myfunction()"> 2、在指令碼中用window.onlo <script type="text/ja

js中如何控制所有頁面載入完成,再執行某些方法

做頁面時經常會遇到當前頁面載入完成後,執行某些初始化工作。這時候就要知道如何判斷頁面(包括IFRAME)已經載入完成,程式碼如下: <script language="javascript">       document.onreadystatechange

簡單實用的JS實現頁面載入完畢之前loading提示效果(相容性較強的loading載入程式碼)

一種簡單實用的JS實現頁面載入完畢之前loading提示效果 做成js呼叫即可: 一、JS程式碼: var _PageHeight = document.documentElement.clientHeight, _PageWidth = documen

js實現所有非同步請求全部載入完畢,loading效果消失

  在實際開發中,一定有情況是這樣的,一個頁面我們有多個地方請求了ajax,在這種情況下,我們要實現資料沒來之前出現我們炫酷的loading效果,而且要等到所有的ajax都請求完畢後,才讓我們的loading效果消失,那麼問題來了,每個ajax請求資料的時間都是不確定的,我們這個loading效果結束的

JS實現頁面載入完畢之前loading提示效果

做成js呼叫: base-loading.js程式碼 /******************************************* * * 建立人:Quber([email protected]) * 建立時間:2014年6月10日 *