this snippet was handed to me long ago and I've slightly modified over time.
$().ready(function() { $(document).click(clickFunc); hideBusysign(); if (typeof Wicket == 'object' && typeof Wicket.Ajax == 'object') { Wicket.Ajax.registerPreCallHandler(showBusysign); Wicket.Ajax.registerPostCallHandler(hideBusysign); Wicket.Ajax.registerFailureHandler(hideBusysign); } function hideBusysign() { $("#ajaxLoader").hide(); } function showBusysign() { var ajaxLoader = $("#ajaxLoader"); var scrollPosition = $(window).scrollTop(); ajaxLoader.css('top', scrollPosition); ajaxLoader.css('left', 20); ajaxLoader.show(); } function clickFunc(eventData) { // IGNORE RIGHT CLICKS if (window.event && event.button == 2) { return; }else if (eventData.which == 3) { return; } var clickedElement = (window.event) ? event.srcElement : eventData.target; if ((clickedElement.tagName.toUpperCase() == 'A' && ((clickedElement.target == null) || (clickedElement.target.length <= 0)) && (clickedElement.href.lastIndexOf('#') != (clickedElement.href.length - 1)) && (!('nobusy' in clickedElement)) && (clickedElement.href.indexOf('mailto') < 0) && (clickedElement.href.indexOf('WicketAjaxDebug') < 0) && (clickedElement.href.lastIndexOf('.doc') != (clickedElement.href.length - 4)) && (clickedElement.href.lastIndexOf('.csv') != (clickedElement.href.length - 4)) && (clickedElement.href.lastIndexOf('.xls') != (clickedElement.href.length - 4)) && ((clickedElement.onclick == null) || (clickedElement.onclick .toString().indexOf('window.open') <= 0)) || (clickedElement.parentNode != 'undefined' && clickedElement.parentNode.tagName != null && clickedElement.parentNode.tagName.toUpperCase() == 'A' && ((clickedElement.parentNode.target == null) || (clickedElement.parentNode.target.length <= 0)) && (clickedElement.parentNode.href.indexOf('mailto') < 0) && (clickedElement.parentNode.href.lastIndexOf('#') != (clickedElement.parentNode.href.length - 1)) && (clickedElement.parentNode.href.lastIndexOf('.doc') != (clickedElement.parentNode.href.length - 4)) && (clickedElement.parentNode.href.lastIndexOf('.csv') != (clickedElement.parentNode.href.length - 4)) && (clickedElement.parentNode.href.lastIndexOf('.xls') != (clickedElement.parentNode.href.length - 4)) && ((clickedElement.parentNode.onclick == null) || (clickedElement.parentNode.onclick .toString().indexOf('window.open') <= 0))) || (((clickedElement.onclick == null) || ((clickedElement.onclick.toString().indexOf('confirm') <= 0) && (clickedElement.onclick.toString().indexOf('alert') <= 0) && (clickedElement.onclick.toString().indexOf('Wicket.Palette') <= 0) && clickedElement.onclick.toString().indexOf("window.print") <= 0) )) && (clickedElement.tagName .toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT' || clickedElement.type .toUpperCase() == 'IMAGE')))) { showBusysign(); } } }); -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Alert-on-ajax-activity-tp2527887p2528293.html Sent from the Wicket - User mailing list archive at Nabble.com.