Есть ли способ открыть все ссылки <a href> на странице в новых окнах?
У меня есть несколько ссылок <a href=".html">
, и я хочу, чтобы все они открывались в новых окнах.
Я знаю, что могу выполнить поиск и заменить все, чтобы добавить target="_blank"
ко всем моим ссылкам <a href="...">
.
Тем не менее, есть ли быстрый способ, такой как установка стиля CSS или добавление некоторого кода JavaScript, для достижения той же цели?
Ответы
Ответ 1
Если у вас есть страница, состоящая только из ссылок, рассмотрите <base target="_blank">
. Это открывает каждую ссылку в новом окне (но также включает цели форм, если не переопределено с помощью <form target="_self">
.
Как показали другие, без изменения источника HTML вы можете использовать Javascript для перебора всех тегов <a>
и добавления атрибута target
или добавления прослушивателя событий , который динамически устанавливает целевой атрибут.
Ответ 2
Если у вас есть jQuery, это просто
$("a").attr("target", "_blank");
Или обычный Javascript
var links = document.links;
for (var i = 0; i < links.length; i++) {
links[i].target = "_blank";
}
В соответствии с предложением @Lekensteyn, без Javascript (добавлено для полноты)
<base target="_blank">.
Ответ 3
CSS: нет.
JavaScript: делегировать событие щелчка, которое добавляет атрибут target="_blank"
при щелчке ссылки.
document.body.addEventListener(function(e) {
if (e.target.nodeName.toUpperCase() === 'A' && e.target.href) {
e.target.target = '_blank';
}
}, true);
Примечание. Если элемент <a>
содержит другие элементы, возможно, вы захотите пройтись по дереву, чтобы выяснить, был ли нажат элемент привязки:
document.body.addEventListener(function(e) {
var target = e.target;
do {
if (target.nodeName.toUpperCase() === 'A' && target.href) {
target.target = '_blank';
break;
}
} while (target = target.parentElement);
}, true);
Или, если вы любитель jQuery:
$('body').on('click', 'a', function(e) {
e.target.target = '_blank';
});
Ответ 4
да, вы можете добавить атрибут с JS ко всем ссылкам в HTML-документе с именем 'target' со значением '_blank';)
Вы также можете открыть заменить href всех ссылок с URL на javascript: openInWindow (url), используя this, и написать функцию в JS, которая откроет новое окно и установит его местоположение в url ;) Google поможет вам с обоими.