Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This code has been tested on both IE and Firefox (06/2008).

Special circumstances

For example, if you redirect to external pages, you must skip the busy
indicator. This means that you might have to use some clue in your
button or link to omit the busy indicator.

Code Block

    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('skype') < 0)
          && (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.tagName.toUpperCase() == 'A' 
          && ((clickedElement.parentNode.target == null) || (clickedElement.parentNode.target.length <= 0))
          && (clickedElement.parentNode.href.indexOf('skype') < 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.tagName.toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' 
              || clickedElement.type.toUpperCase() == 'SUBMIT' || clickedElement.type.toUpperCase() == 'IMAGE'))
         )
      ) {
      showBusysign();
    }

More on the topic: http://www.nabble.com/generalized-way-to-ignore-mouse-input-during-screen-refresh--td21379945.html#a21381260