Отключение щелчка средней кнопкой, прокручивающего с JavaScript

Фон: Я составляю таблицу, напоминающую о whenisgood.net, в котором она имеет click-n-drag, переключающийся для элементов таблицы. Я хочу назвать различные типы переключающегося кода, когда левые, середина и правые кнопки мыши активируют событие mouseDown.

При помощи JQuery я прочь к хорошему началу.

$(".togglable").bind("contextmenu", function() {return false;});
$(".togglable").bind("mousedown", function(e){
  e.preventDefault();
  toggle(this, e);
});

В toggle() функция я могу использовать e.which определить, какая кнопка была нажата.

Кульминационный пункт: Я использовал e.preventDefault () надеющийся, что он остановит поведение значения по умолчанию щелчка средней кнопкой прокрутки. Это не сделало. Что я могу сделать, чтобы мешать действию прокрутки активироваться?

См. также "Инициирование onclick событие с помощью щелчка средней кнопкой"

9
задан Community 23 May 2017 в 12:26
поделиться

2 ответа

В настоящее время моё решение таково: (больше jquery!)

$(".togglable").wrap(
  "<a href='javascript:void(0);'
  onclick='return false;'></a>"
);

Обернув его в ссылку (через jquery wrap), браузеры думают, что это ссылка и не прокручивают средний клик, даже если вы перетаскиваете мышь. При такой настройке и в моей ситуации, есть пара (незначительных) ловушек.

Firefox откроет новую вкладку при среднем клике, но только если вы не перетащите мышь. Опера откроет новую вкладку, когда вы щелкните по ней посередине, перетащите или нет. Поэтому я использовал href='javascript:void(0);' вместо простого href='#' - чтобы браузер клиента не загружал целую страницу, а просто пустую страницу со странным url.

Но это решение работает как шарм на Chrome и Safari. Оно хорошо работает с IE8, за исключением того, что теперь, когда я нажимаю левую кнопку мыши и перетаскиваю ее, оно меняет указатель на символ "не могу", так как думает, что я хочу перетащить ссылку куда-нибудь. Не протестировано на старых версиях IE.

3
ответ дан 4 December 2019 в 09:36
поделиться

Щелчок средней кнопкой мыши можно отключить с помощью Javascript , но только в IE, WebKit и Konquerer. Firefox требует редактирования файла конфигурации . Сейчас 2017 год, и Firefox 50 это поддерживает.

12
ответ дан 4 December 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: