發發關於JavaScript的感慨,隨手記幾個js知識碎片

劍握在手發表於2016-10-14

最近一段時間寫了很多JavaScript和jquery程式碼,越來越感覺js基礎不牢固,寫一句查半天,有時間肯定要系統的學一下。

不說了,先記一下最近學到的點東西,省的以後沒時間系統學js還要再來查。

 

一,在js方法中獲取觸發方法的事件以及觸發事件的元素物件:

A、獲取事件物件比較簡單:

var e = window.event;

但是需要注意的是:通過a標籤的href是不能觸發事件的:

//寫了一個js方法:
function getEvent(){
  console.log(window.event);//在谷歌控制檯列印
}
//兩個a標籤以不同形式觸發該方法:
<a href="javascript:getEvent();" >標籤一</a>
<a href="javascript:void(0);"  onclick="getEvent()" >標籤二</a>
 
//最後標籤一列印的是undefined,標籤二卻可以正常獲取window.event物件

B、獲取了事件就可以獲取觸發事件的元素了

var currentElement =window.event.srcElement || window.event.target;

這獲取的是一個原生的JavaScript元素物件,可以用$(currentElement)來獲取對應的jquery物件,這樣就能用jquery的方法了。

 

二、判斷一個物件是否為undefined(typeof的用法)

var url;
if(url==''||url==null||typeof(url)=="undefined"){
}

核心就是:typeof(url)=="undefined"

在js中,typeof 可以用來檢測給定變數的資料型別,可能的返回值:

1. 'undefined' --- 這個值未定義;

2. 'boolean'    --- 這個值是布林值;

3. 'string'        --- 這個值是字串;

4. 'number'     --- 這個值是數值;

5. 'object'       --- 這個值是物件或null;

6. 'function'    --- 這個值是函式。

 

三、判斷當前視窗是最父級視窗還是放在一個iframe中,並獲取這個iframe物件

if(top!=self){
            var iframe=window.frameElement;
            var iframeId = $(iframe).attr("id");
}

這裡top就代表頂級視窗物件,self就是當前視窗物件,frameElement就是獲取當前所在的iframe物件

 

相關文章