Итак, на данный момент у меня есть скрипт, который перехватывает клики мышью по тегам, модифицирует исходящую ссылку и отправляет пользователей дальше:
$("a[href*='" + someDomain + "']").bind('click keypress', function(event) {
event.preventDefault();
var link = this.href;
var newLink = link + params;
var button = event.button;
if(button && button == 0)) {
window.location = newLink;
} else if(button && button === 1) {
window.open(newLink, '_blank');
}
});
Этот код определит, был ли это левый или средний щелчок, и либо перенаправит текущую страницу, либо откроется в новом окне/вкладке соответственно.
Насколько я вижу, код отлично работает в Chrome/IE. Однако в последней версии Firefox работает только щелчок левой кнопкой мыши.
Для среднего щелчка событие не регистрируется. Итак, моей первой мыслью было посмотреть, какое другое событие должно быть вызвано. Единственный, который я мог найти, был либо mousedown/mouseup (щелчок - это комбинация этих действий).
Используя mousedown или mouseup, я затем получаю событие, чтобы правильно зарегистрировать средний щелчок в Firefox. ОДНАКО проблема заключается в том, что Firefox отказывается открывать любые новые окна из кода javascript, который не является результатом события CLICK.
Итак .... любая подсказка, если это на самом деле возможно? Я бы предпочел не заставлять пользователя разрешать всплывающие окна или переназначать их функцию среднего щелчка, чтобы открывать в текущем окне.
Заранее благодарю за любую помощь!