IE:从事件中获取对象

时间:2011-10-25 10:51:40

标签: javascript internet-explorer javascript-events

我想在用户点击网址时获取href属性。

我试过了:

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

这在Chrome和Firefox中运行良好,但IE存在问题;它给出了一个错误null。

从事件对象获取href的可能解决方案是什么?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

使用此功能获取事件目标

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;
   };

然后在触发事件时调用它

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

请注意,getEventTarget()函数适用于所有事件,因此返回的DOM对象可以按照您喜欢的方式进行操作,而不仅仅是获取href。