js如何實現dom元素結構載入完畢再去執行相關程式碼
關於看到這個題目可能感覺解決此問題非常的簡單,因為有一個常用的事件:
[JavaScript] 純文字檢視 複製程式碼window.onload=function(){ //code }
上面的事件其實是當介面中所有的內容載入完畢再去執行函式中的程式碼,並非是dom元素結構載入完畢去執行。
當然可以利用jQuery的方式實現此功能:
[JavaScript] 純文字檢視 複製程式碼$(document).ready(function(){ //code });
上面的程式碼確實實現了我們的要求,但是為了實現這個功能就引用龐大的jQuery庫,總感覺不是那麼核算,如果能夠將此功能剝離出來,那麼就再好不過了,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼(function(){ var isReady=false; //判斷onDOMReady方法是否已經被執行過 var readyList= [];//把需要執行的方法先暫存在這個陣列裡 var timer;//定時器控制程式碼 ready=function(fn){ if(isReady ) fn.call( document); else readyList.push( function() { return fn.call(this);}); return this; } var onDOMReady=function(){ for(var i=0;i< readyList.length;i++){ readyList[i].apply(document); } readyList = null; } var bindReady=function(evt){ if(isReady) return; isReady=true; onDOMReady.call(window); if(document.removeEventListener){ document.removeEventListener("DOMContentLoaded", bindReady, false); } else if(document.attachEvent){ document.detachEvent("onreadystatechange",bindReady); if(window == window.top){ clearInterval(timer); timer = null; } } }; if(document.addEventListener){ document.addEventListener("DOMContentLoaded", bindReady, false); } else if(document.attachEvent){ document.attachEvent("onreadystatechange", function(){ if((/loaded|complete/).test(document.readyState)) bindReady(); }); if(window == window.top){ timer = setInterval(function(){ try{ //在IE下用能否執行doScroll判斷 dom是否載入完畢 isReady||document.documentElement.doScroll('left'); } catch(e){ return; } bindReady(); },5); } } })();
上面的程式碼實現了我們的要求,能夠讓我們只載入dom結構完畢之後就去執行相關程式碼。
使用方式:
[JavaScript] 純文字檢視 複製程式碼ready(function(){ //code });
相關文章
- jQuery如何實現頁面載入完畢再去執行程式碼jQuery行程
- jQuery如何實現頁面載入完畢再去程式碼jQuery
- javascript如何讓頁面載入完畢再去執行程式碼JavaScript行程
- jQuery ajax載入完畢再去執行後面的程式碼jQuery
- jQuery判斷css檔案載入完畢再去執行程式碼jQueryCSS行程
- jquery如何實現圖片載入完畢後再去進行操作jQuery
- js實現頁面載入完成之後再去執行程式碼JS行程
- 旋轉等待內容載入完畢實現程式碼例項
- 如何判斷js檔案是否載入完畢JS
- JavaScript文件載入完成後再去執行程式碼JavaScript行程
- 頁面載入完畢之後自動執行指定程式碼
- js如何判斷<img>圖片是否載入完畢JS
- js如何判斷img圖片是否載入完畢JS
- jquery如何判斷js檔案是否載入完畢jQueryJS
- JS指令碼載入後執行相應回撥函式JS指令碼函式
- js判斷引入的js檔案是否載入完畢JS
- javascript判斷flash檔案載入完畢程式碼例項JavaScript
- js實現的dom元素拖動封裝外掛程式碼例項JS封裝
- ajax請求完畢之前顯示正在載入程式碼例項
- js檢測css3動畫是否執行完畢程式碼例項JSCSSS3動畫
- springboot中執行完某些邏輯後,才算bean載入完,applicationContext才載入完畢Spring BootBeanAPPContext
- 如何判斷一個img圖片是否載入完畢
- JavaScript判斷iframe是否載入完畢JavaScript
- jQuery實現DOM元素事件動態繫結jQuery事件
- 如何在低版本IE瀏覽器中實現判斷img圖片載入完畢瀏覽器
- RequireJS結構分析,實現自己的模組載入系統UIJS
- 實現js檔案動態載入程式碼例項JS
- javascript檢測iframe是否已經載入完畢JavaScript
- js實現的元素運動程式碼例項JS
- 確保頁面裝載完畢之後再執行客戶端指令碼客戶端指令碼
- 文字框內容輸入完畢觸發事件程式碼例項事件
- js實現的元素抖動效果程式碼例項JS
- JS實現載入層JS
- HTML,javascript,image等載入,DOM解析,js執行生命週期HTMLJavaScriptJS
- javascript如何實現複製克隆一個dom元素節點JavaScript
- js實現的動態載入css外部樣式表程式碼JSCSS
- 原生js實現的動態載入css和js檔案程式碼例項JSCSS
- js實現li元素隔行背景變色例項程式碼JS