jQuery można zrobić korzystanie data("events")
na dowolnym obiekcie (tutaj okna):
var hasbeforeunload = $(window).data("events") && $(window).data("events").['beforeunload'];
Ale to działa tylko na imprezy jquery dodaje.
W bardziej ogólnym przypadku należy po prostu przechowywać informacje, które dodać słuchacza gdzieś:
var addedListeners = {};
function addWindowListenerIfNone(eventType, fun) {
if (addedListeners[eventType]) return;
addedListeners[eventType] = fun;
window.addEventListener(eventType, fun);
}
myślę nie ma standardowy sposób w javascript, aby istniejące procedury obsługi zdarzeń. W najlepszym wypadku można naliczaniu dodatkowych funkcji addEventListener węzła do przechwytywania i przechowywania słuchaczy, ale nie polecam go ...
EDIT:
Od jQuery 1.8, dane zdarzeń są dostępne w $._data(element, "events")
. Dziennik zmian zawiera ostrzeżenie, które należy wziąć pod uwagę:
Należy zauważyć, że nie jest to obsługiwany interfejs publiczny; rzeczywiste struktury danych mogą się niesatysfakcjonująco zmieniać z wersji na wersję.
+1 na równinie javascript, ale może zrobić to przekrój przeglądarkę (attachEvent). –
Może. Zostanie to zrobione [jak wyjaśniono przez MDN] (https://developer.mozilla.org/en/DOM/element.addEventListener#Legacy_Internet_Explorer_and_attachEvent) –
Dziękuję za próbę z jQuery, jednak potrzebuję natywnej wersji Javascript, przepraszam, że nie wspomniałem . Będę jednak podążał za twoją próbą flagi. Będę czekać na dalsze odpowiedzi, a jeśli nie lepiej, wybiorę twoje. – Patrick