Как запретить средней кнопке открывать новую вкладку в браузере? - PullRequest
1 голос
/ 26 августа 2010

У меня есть группа ссылок на странице.когда пользователь щелкает ссылку, он запускает асинхронный запрос, и область содержимого на странице обновляется с помощью HTML-ответа.

Это работает нормально, за исключением случая, когда пользователь щелкает ссылку с помощью «средней кнопки»(или колесо мыши, как бы оно ни называлось!).Затем откроется новая вкладка, и ответ будет возвращен и обработан на этой вкладке.

Можно ли как-нибудь предотвратить это?

Ответы [ 2 ]

2 голосов
/ 26 августа 2010

перехватить ссылку с помощью javascript и переопределить поведение ссылки по умолчанию.

как это:

$('a.ajax').click(function(e){
   e.preventDefault();
   // do ajax stuff, and add an onfinish function that does
   // something like document.location.href = this.attr('href');
});

Вам не нужно делать document.location.href, так как я только что заметил, что область содержимого обновлена. Просто поймайте поведение по умолчанию с помощью e.preventDefault ();

// редактировать Функция protectDefault не остановит среднюю кнопку мыши ... Вы не использовали теги? Я знаю, что он должен быть доступен, так что, может быть, диапазон, содержащий ссылку, чтобы вы могли добавить событие onclick в диапазон и скрыть ссылку с помощью css?

0 голосов
/ 26 августа 2010

К сожалению, нет, Javascript не будет иметь доступа к такого рода элементам управления из соображений безопасности, поскольку он будет широко открыт для злоупотреблений.

...