所以这就是我到目前为止所做的:
<script>
var win;
function OpenInNewTab(url )
{
// var win;
if (win)
{
win.close();
}
win =window.open(url, 'myWin');
win.focus();
}
</script>
然后我的链接就像这样(为了利用Javascript功能):
<li><a href="#" onclick="OpenInNewTab('http://www.anti-agingfirewalls.com/');">Anti-Aging Firewalls</a></li>
问题是,对于我网页上的所有网址,此解决方案无法向上扩展。这意味着我必须为每个我希望以这种方式行事的URL调用onclick。是否有一种优雅的方式来扩展此解决方案,以便我不必继续为每个链接键入“onclick”? (或者至少减少继续打字的努力?)
答案 0 :(得分:2)
只需让这些链接具有正常的href
值(即链接指向的网址),并为其提供rel
属性值external
,以表明您希望它们在一个新标签。然后,只需对此属性值进行小型JavaScript代码段搜索,然后进行更改,以便在新标签页中打开链接。
这很好,因为即使JavaScript被禁用或以其他方式失败,链接仍然有效。
<li><a href="http://www.anti-agingfirewalls.com/" rel="external">Anti-Aging Firewalls</a></li>
<script>
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
</script>
This article已经过时但很好地解释了。如果你使用像jQuery这样的框架,它也可以简化。
答案 1 :(得分:1)
将target="_blank"
添加到您的主播是最简单的方法。
<a href="#" target="_blank">anchor</a>
如果您不想修改页面中的每个锚元素(这是脏工作),您可以在<base>
中添加<head>
元素:
<base target="_blank">
或者,您可以使用JavaScript在DOM ready上批量添加该属性:
var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
anchors[i].target = "_blank";
}
答案 2 :(得分:0)
为什么你不在这里使用目标属性?
a href =“some like here”target =“_ blank”&gt; Google
答案 3 :(得分:0)
&#34;可以重复使用,&#34;是的,绝对。
使用目标属性,而不是将其设置为_blank,为其命名。
以下标记会将链接打开到一个新的空标签中,因此点击三个链接将打开三个标签:
<a href="/path/to/link" target="_blank">click here</a>
但是以下标记会打开指向单个指定标签的链接,当后续链接被跟踪时,它会被重复使用:
<a href="/path/to/link" target="mytab">click here</a>
将目标设置为您想要的任何名称,并且所有指向该目标的链接都可以在同一选项卡中打开。如果尚未存在具有该名称的选项卡,则将打开一个新选项卡。
自Netscape引入帧以来,此功能一直存在。今天大多数人只使用_self或_blank作为目标,但使用命名目标仍然有效。