有没有办法打开所有<a href=""> links on a page in new windows?</a>

时间:2012-09-02 11:28:40

标签: javascript html hyperlink

我有一堆<a href=".html">个链接,想要在新窗口中打开它们。

我知道我可以进行搜索并替换所有内容,以便将target="_blank"添加到我的所有<a href="...">链接中。

然而,是否有一种快速的方法,例如设置CSS样式或添加一些JavaScript代码来完成同样的事情?

5 个答案:

答案 0 :(得分:30)

如果您的网页仅包含链接,请考虑<base target="_blank">。这将打开新窗口中的每个链接(但也包括表单的目标,除非被<form target="_self">覆盖。

正如其他人所示,在不修改HTML源代码的情况下,您可以使用Javascript iterate through all <a> tags and add the target attribute或添加event listener that sets the target attribute dynamically

答案 1 :(得分:26)

如果你有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">.

答案 2 :(得分:10)

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';
});

答案 3 :(得分:1)

是的,您可以使用JS将属性添加到名为'target'的HTML文档中的所有链接,其值为'_blank';)

您还可以使用打开从url到javascript:openInWindow(url)的所有链接的替换href,并在JS中编写打开新窗口并将其位置设置为 url <的函数/ strong>;)Google将为您提供帮助。

答案 4 :(得分:1)

只需使用Javascript在页面中添加html u.w[j]元素:

*(u.h+i)