#javascript #jquery #location
#javascript #jquery #Расположение
Вопрос:
я использую следующий код:
$('a[href*="somelinktext"]').click(function(e) {
e.preventDefault();
top.location = "http://www.example.com";
});
Возможно ли открыть новое окно / вкладку с помощью этой ссылки?
Ответ №1:
Для открытия новой вкладки / окна (в зависимости от настроек браузера пользователя) просто добавьте target
атрибут. Однако, чтобы изменить местоположение фрейма верхнего уровня текущей вкладки, вам нужен обработчик onclick.
$('a[href*="somelinktext"]').each(function() {
$(this).attr('target', '_blank')
}).click(function(e) {
top.location = 'http://www.example.com';
});
Но если вы только хотите открыть новую вкладку, просто придерживайтесь target
attr:
$('a[href*="somelinktext"]').each(function() {
$(this).attr('target', '_blank')
});
Вы также могли бы установить это в самом HTML-коде, хотя:
<a href="..." target="_blank">blah</a>
(он также поддерживает _top
фрейм верхнего уровня)
Комментарии:
1. Ага.. Я бы тоже сказал
target="_blank"
, но я вспомнил, что в спецификациях HTML5 сказано, что он устарел. Перечитав указанную спецификацию, я обнаружил, что она больше не является устаревшей, поскольку «целевой атрибут для элементов a и area больше не является устаревшим, поскольку он полезен в веб-приложениях». 12. Я бы все равно не стал его использовать. Это намного удобнее для пользователя, если они могут решить — и в настоящее время большинство людей (ну, за исключением некоторых секретарей и т.д. : p) Все равно знают, как использовать среднюю кнопку мыши..
Ответ №2:
Использовать window.open
вместо top.location
?
Комментарии:
1. Да, но обратите внимание, что в IE и Safari ссылка скорее откроется в новом окне. Все остальные браузеры будут работать до тех пор, пока в настройках tabs установлено создавать новые вкладки вместо окон.
Ответ №3:
Я думаю, вы можете использовать window.open
функцию для этого.
Спасибо