в IE получить последнее событие можно при помощи window.event. FF такого проперти не поддерживает, поэтому возникла проблема.
покопался в интернете, там везде советуется повесить на контрол обработчик, который уже в качестве элемента получает это событие, а внутри функции сделать чтото типа такого
function (e)
{
var e1 = e || window.event;
...
}
проблема заключается в том, что моя функция не принимает аргументов. точнее, она не совсем моя, но фиксить ее нужно мне. не принимает она аргументов по той причине, что вызывается она не из обработчика контрола, а из других мест. например — из валидатора. повлиять на код валидатора я тоже не могу. поэтому требуется javascript код, который вытащит последнее событие на странице (а из него уже надо будет получить id элемента, который это событие вызвал), и который будет работать на FF.
кто знает, или хотя бы посдкажет, в какую сторону копать?
спасибо.
и> проблема заключается в том, что моя функция не принимает аргументов. точнее, она не совсем моя, но фиксить ее нужно мне. не принимает она аргументов по той причине, что вызывается она не из обработчика контрола, а из других мест. например — из валидатора. повлиять на код валидатора я тоже не могу. поэтому требуется javascript код, который вытащит последнее событие на странице (а из него уже надо будет получить id элемента, который это событие вызвал), и который будет работать на FF.
и> кто знает, или хотя бы посдкажет, в какую сторону копать?
и> спасибо.
Подменить эту функцию своей. Пример:
function f(){ alert("Функция F"); }
var old_f = f;
function myfunction(e){ alert("Моя функция"); old_f(); }
var f = myfunction;
f();
Подмену совершить до тго, как эта функия будет вызываться
Здравствуйте, игппук, Вы писали:
и> M>Подменить эту функцию своей.
и> M>Подмену совершить до тго, как эта функия будет вызываться
и> и как вызвать функцию-подменку? кто и как ей отдаст в качестве параметра событие?
и> поясню. есть фрэймворковский кастом-валидатор. у него в качестве параметра прописана моя функиця, которая принимает аргументы для этого валидатора. так как эти аргументы бесполезны, то можно считать, что их нет. фактически, событие нужно получить внутри функции. оно и получается при помощи window.event, которое работает в IE, но не работает в FF.
Ну, помимо предложенного мной, можно еще исползьовать и свойство arguments:
function f(){alert(arguments[0]);}
f("Hello, world");