在「按需載入」的需求中,我們常常會判斷當腳本載入完成時,傳回一個回呼函數,那如何去判斷腳本的載入完成呢?
我們可以對載入的 JS 物件使用 onload 來判斷(js.onload),此方法 Firefox2、Firefox3、Safari3.1 、Opera9.6 瀏覽器都能很好的支持,但 IE6、IE7 卻不支援。曲線救國- IE6、IE7 我們可以使用js.onreadystatechange 來追蹤每個狀態變化的情況(一般為loading 、loaded、interactive、complete),當傳回狀態為loaded 或complete 時,則表示載入完成,傳回回呼函數。
對於 readyState 狀態需要一個補充說明:
1.在 interactive 狀態下,使用者可以參與互動。
2.Opera 其實也支援 js.onreadystatechange,但他的狀態和 IE 的有很大差異。
<script>
<P>function include_js(file) {<BR> var _doc = document.getElementsByTagName('head')[0];<BR> var js = document.createElement('script'); type', 'text/javascript');<BR> js.setAttribute('src', file);<BR> _doc.appendChild(js);<BR>
if (!/*@cc_on!@*/0) { //if not IE<P> //Firefox2、Firefox3、Safari3.1 、Opera9.6 對 unc () {<BR> alert('Firefox2、Firefox3、Safari3.1 、Opera9.6 support js.onload');< //IE6、IE7 support js.onreadystatechange<BR> js.onreadystatechange = function () {<BR> if (js.readyState 問 alert('IE6、IE7 support js.onreadystatechange') ;<BR> }<BR> }<BR> }<BR>
<BR> return false;<BR>}<BR>
<BR><BR>include_js('http://www.planabc.net/wp-includes/js/jquery/jquery.js');</script>