在新选项卡中打开链接
我为我正在执行的项目创建了一个网站。 在网站的内容中,有一些可以访问的外部网页的链接。 与此同时,当用户点击其中一个链接时,他将被带到指定的链接,他将不再在当前页面上。 我想要做的是当用户点击链接时,点击链接中的指定网站会出现在新标签页中。通过这种方式,用户可以停留在当前页面上,也可以在新选项卡上查看其他页面。在新选项卡中打开链接
我看着在互联网上,发现这其中似乎是有用的:
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,但它仍然没有奏效
任何人都可以帮我这个
你可以使用HTML:
<a target="_blank" href="YourAmazingURL">Click here for Amazing URL</a>
又如:
<a target="_blank" href="http://www.google.com/">Google</a>
这需要目标属性的优势。目标属性
的更多信息:http://www.w3schools.com/tags/att_a_target.asp 另外:http://www.w3schools.com/html/html_links.asp
编辑:
对于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>
问题是我只需要使用XHTML,并且在验证页面时说它的目标不是属性 – 2012-04-23 09:55:14
那里 - 更新了XHTML。 – anonymous 2012-04-23 10:21:34
谢谢。我也发现了一种使用jQuery来实现它的方式,但这种方式也很好地知道:-)。 – 2012-04-24 03:29:55
你需要使用JavaScript这个?
如果不是,您可以直接将属性添加到HTML中的标签。
例如:<a href="http://www.google.co.uk" target="_blank">Google</a>
这很可能会为你做它,如果不需要的JavaScript一个简单的方法。
问题是我只需要使用XHTML,并且在验证它所说的目标页面时不是属性 – 2012-04-23 09:54:50
要使用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"
放入您的锚标记中即可。
如果您需要依赖于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();
downvoter请提供任何意见downvote?谢谢! – eyecatchUp 2015-11-07 21:44:12
虽然它可能似乎是一个好主意,你真不该强迫你的访问者这样的决定 - 请参阅:HTTP ://www.webcredible.co.uk/user-friendly-resources/web-usability/new-browser-windows.shtml – CJM 2012-04-23 10:40:54