40
4

5 回答 5

46

如果您的页面仅包含链接,请考虑<base target="_blank">. 这会在新窗口中打开每个链接(但也包括表单的目标,除非用<form target="_self">.

正如其他人所展示的,在不修改 HTML 源代码的情况下,您可以使用 Javascript遍历所有<a>标签并添加target属性或添加动态设置目标属性的事件侦听器

于 2012-09-02T11:31:50.690 回答
32

如果你有 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">.
于 2012-09-02T11:31:16.573 回答
13

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';
});
于 2012-09-02T11:31:09.380 回答
1

是的,您可以将带有 JS 的属性添加到 HTML 文档中名为“target”且值为“_blank”的所有链接;)

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

于 2012-09-02T11:32:10.960 回答
1

只需使用 Javascript 向页面添加一个 htmlbase元素:

var e = document.createElement("base");
e.target = "_blank";
document.head.appendChild(e); 
于 2020-03-15T21:28:37.330 回答