JQuery: обнаружение мыши и открытие цели в новой вкладке
В настоящее время я разрабатываю простое приложение для форума. Он в основном работает от jQuery/AJAX и загружает все на одной странице; однако я знаю, что иногда пользователи хотят открывать сразу несколько тем, чтобы посмотреть их на новых вкладках при просмотре форума.
Мое решение состояло в том, чтобы обнаружить, когда щелкнули среднюю кнопку мыши и щелкнули левой кнопкой мыши, и затем выполните разные действия. Я хочу загрузить объект с помощью AJAX в окне при нажатии левой кнопки мыши, иначе загрузите его на новую вкладку.
Моя единственная проблема: я не знаю, как открыть целевое местоположение на новой вкладке с помощью jQuery. Очевидно, что открытие новых вкладок по желанию не разрешено, но есть ли способ присвоить этот тип поведения пользовательскому действию?
Спасибо!
Ответы
Ответ 1
Пожалуйста, посмотрите пример кода. Это может помочь
<script type='text/javascript'>
jQuery(function($){
$('a').mousedown(function(event) {
switch (event.which) {
case 1:
//alert('Left mouse button pressed');
$(this).attr('target','_self');
break;
case 2:
//alert('Middle mouse button pressed');
$(this).attr('target','_blank');
break;
case 3:
//alert('Right mouse button pressed');
$(this).attr('target','_blank');
break;
default:
//alert('You have a strange mouse');
$(this).attr('target','_self"');
}
});
});
</script>
Ответ 2
<a href="some url" target="_newtab">content of the anchor</a>
В javascript вы можете использовать
$('#element').mousedown(function(event) {
if(event.which == 3) { // right click
window.open('page.html','_newtab');
}
})
Ответ 3
Вы также должны учитывать, что ctrl-click и cmd-click используются для открытия новых вкладок (соответственно в windows/linux и mac. Поэтому это было бы более полное решение:
jQuery.isClickEventRequestingNewTab = function(clickEvent) {
return clickEvent.metaKey || clickEvent.ctrlKey || clickEvent.which === 2;
};
Ответ 4
$('#element').mousedown(function(event) {
if(event.which == 3) { // right click
window.open("newlocation.html","");
}
});
Смотрите в прямом эфире http://jsfiddle.net/8CHTm/1/
Ответ 5
Действие средней кнопки мыши для открытия на новой вкладке.
Вы можете установить для целевого атрибута гиперссылки _blank, чтобы открыть новую вкладку.
<a href="#link" target="_blank">Link</a>
Вы также можете обратиться к этому вопросу Как отличить левый и правый щелчок мыши от jQuery
Ответ 6
Попробуйте "_newTab" вместо "_blank"
window.open(URL, "_newtab" );