2011-10-25 7 views
0

URLをクリックしたときにhref属性を取得したい。IE:イベントからオブジェクトを取得する

私が試してみた:

var e = clickedElement || window.event; 
var t = e.target || e.srcElement; 
alert(t.href); 

これはChromeとFirefoxで正常に動作しているが、IEに問題があります。エラーnullを返します。

イベントオブジェクトからhrefを取得する方法はありますか?

+1

このコードを含む関数を表示します。 –

答えて

0

clickedElementは、イベントオブジェクトの引数のプレースホルダーまたはthis引数のいずれかに応じて異なります。

function event_obj(event) { 
    if (!event) var event = window.event; 
    var element = event.target || event.srcElement; 
    alert(element.href); 
    return false; 
} 
function element_obj(element) { 
    alert(element.href) 
    return false; 
} 
. 
. 
<a href=".." onclick="return event_obj();">foo</a> 
<a href=".." onclick="return element_obj(this);">bar</a> 
0

使用この機能を使用すると、getEventTarget()関数は、DOMので、すべてのイベントのために働くイベント

function evtrigger(ev) { 
     alert(getEventTarget(ev).href); 
    } 

注意をトリガしたときに、それを呼び出すイベントターゲットに

function getEventTarget(event) { 
    var targetElement = null; 
    try { 
     if (typeof event.target != "undefined") { 
      targetElement = event.target; 
     } 
     else { 
      targetElement = event.srcElement; 
     }    
    } catch (ex) { alert("getEventTarget failed: " + ex); } 
      return targetElement; 
    }; 

を取得します返されるオブジェクトは、hrefを取得するだけでなく、好きな方法で操作できます。