Как получить элемент caller с помощью Javascript?

У меня есть таблица с id "tbl", и она имеет 2 строки и 3 столбца. Каждая ячейка (td) имеет явно определенный идентификатор. Кроме того, в таблице есть событие onclick, которое вызывает функцию foo(). Команда onclick() будет генерироваться всякий раз, когда будет нажата любая ячейка. Тег таблицы

< таблица id = "tbl" width = "80%" height = "20%" onclick = "javascript: foo()" >

Я также пробовал javascript: foo (this)

Я хочу узнать идентификатор ячейки таблицы, которая была нажата.

Я попробовал следующий javascript

function foo(e)
{
    var sender = (e && e.target) || (window.event && window.event.srcElement);
    alert("Sender" + sender.id);
}

Это отлично работает в Google Chrome и IE, но не в Firefox. В Firefox отправитель undefined. Как получить ячейку вызывающего абонента в Firefox?

Ответ 1

Во-первых, удалите javascript: из атрибута onclick. Вы смешиваете это с javascript в атрибуте href ссылки. В коде Javascript javascript: создаст label с именем "javascript".

Кроме того, foo(event) должен корректно работать с вашим окончательным образцом кода JavaScript. Причина, по которой он не работает в Firefox, но работает в Chrome и IE; они поддерживают глобальный объект события window.event (который оценивается, когда ваш e.target дает undefined, потому что this - это элемент, который не будет иметь свойство target). Firefox не поддерживает глобальный объект event.

Дальнейшее чтение: