Я наконец нашел время, чтобы решить это, и это было довольно легко:
Вот как я это сделал, используя jQuery & FancyBox:
Присвойте нужной ссылке класс 'has-overlay' и присвойте ему специальный атрибут, который сообщит ей, что она должна загружать в оверлее
<a href="/login"class="has-overlay" overlay="#loginform">Login</a>
Убедитесь, что у вас есть код оверлея (это стандартный материал FancyBox)
<div class="hidden" id="loginform"> <!-- Form Goes Here --> </div>
И поместите этот фрагмент в готовое событие:
$('.has-overlay').bind('click', function(e) {
var overlay = $(this).attr('overlay');
$('<a href="' + overlay + '"></a>').fancybox().trigger('click');
return false;
})
Когда пользователь щелкает левой кнопкой мыши, вызывается этот обработчик 'click'. Он загрузит оверлей, а затем вернет false, поэтому браузер не будет переходить по ссылке в ссылке.
Когда пользователь щелкает средним или правым щелчком, обработчик щелчков не срабатывает и работает как обычная ссылка.