There is some slightly incorrect syntax in the "Popups.addLoading" function on lines 581-591 jQuery functions are being invoked without wrapping the variable in a jQuery $() selector. This doesn't matter in safari 4, or firefox with Firebug enabled. Turn off firebug however, and you'll see that the browser redirects to the originally requested URL before it can finish building the popup.

The original code was

/**
 * Add a "Loading" message while we are waiting for the ajax response.
 */
Popups.addLoading = function() {
  var $loading = $('#popups-loading');
  if (!$loading.length) { // Loading image does not already exist, so create it.
    $loading = $(Drupal.theme('popupLoading'));
    $('body').prepend($loading); // Loading div is initially display:none.
    var width = $loading.width();
    var height = $loading.height();
    var left = (Popups.windowWidth() / 2) - (width / 2) + Popups.scrollLeft();
    var top = (Popups.windowHeight() / 2) - (height / 2) + Popups.scrollTop();
    $loading.css({'top': top, 'left': left, 'display': 'block'}); // Center it and make it visible.
  }
};

And I suggest changing it to;

/**
 * Add a "Loading" message while we are waiting for the ajax response.
 */
Popups.addLoading = function() {
  var $loading = $('#popups-loading');
  if (!$loading.length) { // Loading image does not already exist, so create it.
    $loading = Drupal.theme('popupLoading'); 
    $('body').prepend($loading);// Loading div is initially display:none. 
    var width = $($loading).width(); 
    var height = $($loading).height();
    var left = (Popups.windowWidth() / 2) - (width / 2) + Popups.scrollLeft();
    var top = (Popups.windowHeight() / 2) - (height / 2) + Popups.scrollTop();
    $($loading).css({'top': top, 'left': left, 'display': 'block'}); // Center it and make it visible. 
     }
};

Which is a slightly stricter application of jQuery syntax. There is a similar issue in the Facebook skin's js file, on lines 75, 81 and 85

Comments

nwe_44’s picture

Sorry,
$loading = Drupal.theme('popupLoading');

should indeed be
$loading = $(Drupal.theme('popupLoading'));

that's legacy from me bug checking.

Appologies