|
|
|
| В моем чате появились 2 проблемы.
Первая заключается в том, что...
document.onkeydown = function (e)
{
var el = e.srcElement;
/* .... */
}
|
выдает, что has no properties...
то же самое делается в строке
getById('ignored').innerHTML = 'Игнор: ' + users.join(', ');
|
сама функция
function getById (id)
{
if (document.getElementById)
return document.getElementById (id);
if (document.all)
return document.all[id];
if (document.layers)
return document.layers[id];
}
|
хотя можно было бы сократить до
function getById (id)
{
var d = document;
if (d.getElementById) return d.getElementById (id);
if (d.all) return d.all[id];
if (d.layers) return d.layers[id];
}
|
Прошу помочь, так как все это в Опере и ИЕ работает наура! | |
|
|
|
|
|
|
|
для: bronenos
(30.04.2007 в 17:33)
| | 1. FF не понимает srcElement - у него для этого случая имеется свойство target, т.е.
для IE и Opera: var el = event.srcElement;
для FF: var el = e.target;
2. ошибки в самой функции getById (id) я не вижу. Видимо, что-то парсеру не нравится вне функции - проверьте наличие самого объекта 'ignored' в документе | |
|
|
|
|
|
|
|
для: CNT
(30.04.2007 в 18:24)
| | > проверьте наличие самого объекта 'ignored' в документе
с ним проблем нет - опера и ие, как я уже сказал, работают нормально | |
|
|
|
|
|
|
|
для: CNT
(30.04.2007 в 18:24)
| | все то же...
document.onclick = function (e)
{
try { var el = e.srcElement; }
catch (e) { var el = e.target; }
menuX = e.clientX + document.body.scrollLeft;
menuY = e.clientY + document.body.scrollTop;
switch (el.id)
{
case 'td_item': break;
case 'nick': menu_load (el.innerHTML); break;
default: menu_close(); break;
}
return true;
}
|
пробовал и
try { var el = e.srcElement; }
catch (e) { var el = e.target; }
и
try { var el = window.event.srcElement; }
catch (e) { var el = window.event.target; } | |
|
|
|
|
|
|
|
для: bronenos
(30.04.2007 в 18:49)
| | Странно вы как-то пробуете... прям как Александр Васильевич... "через Альпы"
<html><head>
<script>
document.onclick = function (e)
{
var el = (navigator.userAgent.indexOf ('Firefox') > 0) ? e.target : event.srcElement;
alert (el.innerHTML);
}
</script>
</head><body>
<h1>Кликни</h1>
</body></html>
|
| |
|
|
|
|
|
|
|
для: CNT
(30.04.2007 в 19:10)
| | ха, я точно так же и сделал только что... ))
все равно так же =( даже на target
var is_ff = (navigator.userAgent.toLowerCase().indexOf('firefox') != -1);
var el = (!is_ff) ? e.srcElement : e.target; | |
|
|
|
|
|
|
|
|
для: ilyaILF
(01.05.2007 в 01:51)
| | а как тогда сделать
чтоб передавалось в качестве параметра событие, тип так? так вроде не пашет...
по ссылке все то же самое что и у меня в целом
document.onclick = function (window.event) {} | |
|
|
|
|
|
|
|
для: bronenos
(01.05.2007 в 07:07)
| | А в этой записи
document.onclick = function (window.event) {}
| равно как и в этой
document.onkeydown = function (e)
{
var el = e.srcElement;
/* .... */
}
|
После слова function разве не полагается давать имя этой функции, как например:
document.onclick = function myfunction(window.event) {}
|
| |
|
|
|
|
|
|
|
для: CNT
(30.04.2007 в 19:10)
| | Вариант 30.04.2007 в 19:10 AS IS (т.е. приведённый код, точно сохранённый в виде отдельного файла) в ваших браузерах (MSIE, Opera, FF) работает?
Если работает, тогда ищите ошибку не в передаче функции event'a (с этим всё в порядке), а в чём-то ином... своём... | |
|
|
|
|
|
|
|
для: CNT
(01.05.2007 в 08:40)
| | document.onclick = function (e)
здесь будет передано событие? | |
|
|
|
|
|
|
|
для: bronenos
(01.05.2007 в 09:06)
| | Повторяю вопрос - код в виде отдельного файла работает во всех ваших браузерах?
Или не работает?
Если работает, то, как думаете, событие передаётся или не передаётся?
PS. Обратите внимание на код: для "неFirefox" передаваемое значение не используется, а прописывается event.srcElement | |
|
|
|
|
|
|
|
для: CNT
(01.05.2007 в 09:44)
| | Если это поможет избавиться от ошибки в FF (has no properties):
<style>
body
{height: 100%;}
</style>
|
то возможно проблемы с версткой. | |
|
|
|
|
|
|
|
для: CNT
(01.05.2007 в 09:44)
| | работает в других
поправка, не работает...
но зато var e = window.event работает
а фф не хочет ни e.srcElement ни e.target | |
|
|
|
|
|
|
|
для: bronenos
(01.05.2007 в 10:15)
| | Попробуйте, это вариант исключительно для FF, пока в нем не задана высота, она считается нулевой и при щелчке мышью объект получается что просто отсутствует, отсюда и подобная ошибка, мне кажется так.
Попробуйте результат работы вложенного файла на основе примера, предложенного CNT со стилями html и body - height: 100%; и отдельно убирая стили html и отдельно убирая стили body (можно и без доктайпа пробовать) в FF. | |
|
|
|
|
|
|
|
|
для: bronenos
(01.05.2007 в 10:43)
| | все, работает... что то сделал, не знаю что, но заработало | |
|
|
|