Crossbrowser-Entsprechung des expliziten OriginalTarget-Ereignisparameters

Kennt jemand eine Crossbrowser-Entsprechung des expliziten Originalziel-Ereignisparameters? Dieser Parameter ist Mozilla-spezifisch und gibt mir das Element, das die Unschärfe verursacht hat. Angenommen, ich habe eine Texteingabe und einen Link auf meiner Seite. Texteingabe hat den Fokus. Wenn ich auf den Link klicke, zeigt mir das Weichzeichnungsereignis der Texteingabe das Linkelement in Firefox über den Parameter explicitOriginalTarget an.

Ich erweitere die onBlur-Methode von Autocompleter.Base, um die Suchergebnisse nicht auszublenden, wenn das Suchfeld den Fokus auf bestimmte Elemente verliert. Standardmäßig wird die onBlur-Methode ausgeblendet, wenn das Suchfeld den Fokus auf ein Element verliert.

Autocompleter.Base.prototype.onBlur = Autocompleter.Base.prototype.onBlur.wrap(
function(origfunc, ev) {
    var newTargetElement = (ev.explicitOriginalTarget.nodeType == 3 ? ev.explicitOriginalTarget.parentNode: ev.explicitOriginalTarget); // FIX: This works only in firefox because of event's explicitOriginalTarget property
    var callOriginalFunction = true;
    for (i = 0; i < obj.options.validEventElements.length; i++) {
        if ($(obj.options.validEventElements[i])) {
            if (newTargetElement.descendantOf($(obj.options.validEventElements[i])) == true || newTargetElement == $(obj.options.validEventElements[i])) {
                callOriginalFunction = false;
                break;
            }
        }
    }
    if (callOriginalFunction) {
        return origFunc(ev);
    }
}
);


new Ajax.Autocompleter("search-field", "search-results", 'getresults.php', { validEventElements: ['search-field','result-count'] });

Vielen Dank.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage