很多時候我們在使用document.getelementbyid的時候直接在script標籤中獲取物件,然後使用,此時程式會出現該物件為undefined。
<但是如果你把這段**放到文件的最末尾,你再執行他的結果便不是undefined。這到底是為什麼呢?這個我們要從文件的載入來說起,乙個html文件的載入都是按照一定順序來載入的,當載入到head部分的js時,他會block(阻塞)下面內容的載入,這個時候我們js中去獲取的物件都還沒有,自然就為undefined。但是如果你將這個**放到最後,頁面按照順序載入,當所有的html都載入完成,再去載入你的js,此時,頁面中的物件已存在,自然不會為undefined。script
>
var dom
= document
.getelementbyid("target");
alert(dom); // undefined
script
>
上面的**是立即執行,所以必須要考慮他所放的位置,但是如果是乙個function,那麼在**載入的時候不會執行,只有在需要呼叫它的地方才會去觸發,而在呼叫的地方已經將頁面內容載入完成,所以function裡面去使用上面的**也不會出現undefined。
在jquery中,我們使用$(document).ready(function(){}),在這個function裡面他的方法為什麼會等到頁面載入完成之後再執行呢,其實我們可以仔細的去看一下他的ready方法。為了能更加清楚的描述出這種方法,我們下面用乙個模擬例子來說明:
jquery.ready =在這裡,ready函式傳遞了另外乙個函式,這個f是我們在頁面載入完成之後需要去呼叫的方法。因此在ready函式中,我們要去判斷頁面是否載入完成,再去執行我們ready中的方法。function
(f)
// ie
if(isie)
}; }else }
}
又是因為瀏覽器的原因,ie又要搞特殊!mozilla新增了domcontentloaded事件,因此我們只需用給document新增該事件,同時將要執行的函式傳遞過去即可。而ie,我麼要去判斷他的onreadystatechange狀態,當他載入完成時為complete或者為loaded的時候,此時我們才可以去呼叫他的方法。
本文出自 「sg-yyz」 部落格,請務必保留此出處
JavaScript判斷Email位址是否有效
在用asp編寫頁面時,如果涉及到郵件傳送,一般會要求輸入email位址。錯誤的email位址往往帶來許多不必要的麻煩,用下面的函式isvalidemail就能判斷出乙個email位址是否有效。函式源 function isvalidemail email validflag false if ema...
JavaScript 對載入頁面狀態的判斷
傳回xml 檔案資料的目前狀況。基本語法 intstate xmldocument.readystate 說明這個屬性是唯讀的,傳回值有以下的可能 0 uninitialized xml 物件被產生,但沒有任何檔案被載入。1 loading 引導程式進行中,但檔案尚未開始解析。2 loaded 部分...
使用JavaScript判斷手機是處於橫屏還是豎屏
移動端的瀏覽器一般都支援window.orientation這個引數,通過這個引數可以判斷出手機是處在橫屏還是豎屏狀態。從而根據實際需求而執行相應的程式。通過新增監聽事件onorientationchange,進行執行就可以了 判斷手機橫豎屏狀態 function hengshuping if wi...