Для установки ссылок используется тег A. При клике на ссылку пользователь переходит на другую страницу. Переход может быть осуществлен в текущем окне, или в новом (если у браузера есть вкладки — то в новой вкладке). У тега A есть специальный атрибут target, предназначенный для установки режима открытия ссылки. Например, target="_blank" откроет страницу в новом окне. Казалось бы, все просто. Однако есть нюансы и вебмастера постоянно задаются вопросом, как же все-таки правильно открывать ссылки, в новом или текущем окне?
Открытие в новом окне (вкладке)
Допустим, мы владельцы сайта. Тогда мы хотим, чтобы пользователи оставались на нашем сайте даже после открытия ссылок на внешние ресурсы. То есть мы сделаем так, чтобы все внешние ссылки (на «другие» сайты) открывались в новой вкладке, а внутренние (на «наши» страницы ) – в текущей. Пользователь будет рад, так как после завершения посещения внешнего ресурса он увидит открытую вкладку нашего сайта и продолжит по нему ходить, вдруг найдет что-то еще интересное.
Естественно, открывать все подряд ссылки (внешние и внутренние) в новой вкладке не следует, это будет выглядеть просто странно.
Открытие в текущем окне (вкладке)
Снова посмотрим со стороны владельца сайта. Если пользователь открывает все страницы в текущей вкладке, то при открытии внешней ссылки он уйдет с нашего сайта. Конечно же, он может нажать потом кнопку «назад», но вряд ли это сделает, потому что просто может забыть откуда он перешел. Со стороны пользователя также неудобно: придется либо многократно нажимать назад, либо где-то сохранять адрес предыдущего сайта.
При открытии всех страниц в текущем окне пользователь может пользоваться правой кнопкой мыши и выбирать «Открыть в новой», но не все знают про этот функционал и не всем он удобен.
Итог
Я рекомендую использовать такой принцип: устанавливать target="_blank" для внешних ссылок, чтобы они открывались в новом окне, а внутренние ссылки открывать по умолчанию в текущем.
Кстати, следующий код на jquery автоматически выбирает со страницы внешние ссылки и динамически подставляет им target="_blank":
$("a[href^='http']").attr('target','_blank');