IE: получить объект из события - PullRequest
0 голосов
/ 25 октября 2011

Я хочу получить атрибут href, когда пользователь нажимает на URL.

Я пробовал:

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

Это хорошо работает в Chrome и Firefox, но естьпроблема с IE;выдает ошибку null.

Какое возможное решение получить href из объекта события?

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Используйте эту функцию, чтобы получить цель события

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.

0 голосов
/ 25 октября 2011

Зависит от значения 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...