Открытие ссылки на новой вкладке
Я создал сайт для проекта, который я делаю.
В содержании веб-сайта есть ссылки на внешние веб-страницы, которые можно посетить.
В то время, когда пользователь нажимает на одну из ссылок, он будет доставлен по указанной ссылке, и он больше не будет на текущей странице.
Я хотел бы сделать так, чтобы указанный веб-сайт в указанной ссылке появился на новой вкладке, когда пользователь нажимает на ссылку. Таким образом, пользователь остается на текущей странице, а также может просматривать другую страницу на новой вкладке.
Я посмотрел в Интернете и нашел это, что казалось полезным:
function externalLinks()
{
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++)
{
var anchor = anchors[i];
if(anchor.getAttribute("href"))
anchor.target = "_blank";
}
}
window.onload = externalLinks;
Проблема, с которой я сталкиваюсь, заключается в том, что навигация на моем веб-сайте содержит метки привязки. Итак, теперь, если пользователь нажимает на ссылки на навигационной панели, он откроет новую вкладку. Я хочу, чтобы это произошло ТОЛЬКО, если пользователь нажимает ссылку на содержимое моего веб-сайта. Поэтому, если пользователь нажимает на ссылку в навигационной панели, он не должен открывать новую вкладку и должен просто взять его в указанное место назначения.
Я попытался добавить класс ко всем ссылкам в контенте и использовать getElementByClassName, но он все еще не работает.
Любой может помочь мне с этим
Ответы
Ответ 1
Вы можете просто использовать HTML:
<a target="_blank" href="YourAmazingURL">Click here for Amazing URL</a>
Другой пример:
<a target="_blank" href="http://www.google.com/">Google</a>
Это использует целевой атрибут.
Дополнительная информация об атрибуте target: http://www.w3schools.com/tags/att_a_target.asp
Также: http://www.w3schools.com/html/html_links.asp
EDIT:
Для XHTML просто выполните следующее:
<a href="YourAmazingURL" onclick="window.open(this.href,'_blank');return false;">Click here for Amazing URL</a>
Или снова:
<a href="http://www.google.com/" onclick="window.open(this.href,'_blank');return false;">Google</a>
Ответ 2
Вам нужно использовать javascript для этого?
Если нет, вы можете просто добавить атрибут непосредственно в тег в HTML.
Например: <a href="http://www.google.co.uk" target="_blank">Google</a>
Это, вероятно, будет проще для вас, если javascript не требуется.
Ответ 3
Если вам нужно полагаться на JavaScript:
В основном вам просто нужно изменить свой if
-condition (чтобы проверить, указывает ли привязка на внешнее местоположение или нет).
Итак, вместо if(anchor.getAttribute("href"))
используйте if(anchor.getAttribute("href") && anchor.hostname!==location.hostname)
.
С небольшим количеством очистки кода ваша функция должна выглядеть следующим образом:
function externalLinks() {
for(var c = document.getElementsByTagName("a"), a = 0;a < c.length;a++) {
var b = c[a];
b.getAttribute("href") && b.hostname !== location.hostname && (b.target = "_blank")
}
}
;
externalLinks();
Ответ 4
вы хотите использовать document.getElementById("theidgoeshere");
Чтобы сделать это, установите атрибут id в своей ссылке так:
<a href="www.google.com" id="theidgoeshere">Google</a>
Затем в вашем javascript
var anchor = document.getElementById("theidgoeshere");
if(anchor.getAttribute("href"))
anchor.target = "_blank";
Также обратите внимание, что вы можете обойтись без javascript. Просто поместите target="_blank"
в свой якорный тег.