我有一堆<a href=".html">链接,想让它们都在新窗口中打开。我知道我可以做一个搜索和替换所有添加target="_blank"到我所有的<a href="...">链接。但是,有没有一种快速的方法,比如设置CSS样式,或者添加一些JavaScript代码,来完成同样的事情?
<a href=".html">
target="_blank"
<a href="...">
ve7v8dk21#
如果你有一个只包含链接的页面,可以考虑<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或添加一个event listener that sets the target attribute dynamically。
<base target="_blank">
<form target="_self">
<a>
target
laik7k3q2#
如果您有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">.
vhipe2zx3#
CSS:没有。JavaScript:委托一个click事件,该事件在单击链接时添加一个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'; });
2skhul334#
是,你可以用JS把属性添加到HTML文档中所有的链接,文档名为“target”,值为“_blank”;)也可以使用this打开url到javascript:openInWindow(url)所有链接的replace href,在JS中编写函数打开新窗口,并将其位置设置为url;)谷歌会帮你做到这两点。
nwsw7zdq5#
只需使用Javascript向页面添加一个html base元素:
base
var e = document.createElement("base"); e.target = "_blank"; document.head.appendChild(e);
rhfm7lfc6#
我使用纯JavaScript创建了一个脚本,使所有链接在一个新窗口中打开。
<script type="text/javascript"> var all_links = document.querySelectorAll("a"); for (let index in all_links) { try { all_links[index].setAttribute("target", "_blank"); } catch (error) { //console.log(error); } } </script>
6条答案
按热度按时间ve7v8dk21#
如果你有一个只包含链接的页面,可以考虑
<base target="_blank">
,它会在一个新窗口中打开每个链接(但也包括表单的目标,除非被<form target="_self">
覆盖。正如其他人所展示的那样,在不修改HTML源代码的情况下,可以使用Javascript将iterate through all
<a>
tags and add thetarget
attribute转换为event listener that sets the target attribute dynamically或添加一个event listener that sets the target attribute dynamically。laik7k3q2#
如果您有jQuery,这很简单
或常规Javascript
根据@Lekensteyn的建议,不带Javascript(为完整性而添加)
vhipe2zx3#
CSS:没有。
JavaScript:委托一个click事件,该事件在单击链接时添加一个
target="_blank"
属性。注意:如果
<a>
元素包含其他元素,则可能需要遍历树以确定是否单击了锚元素:或者,如果您是jQuery爱好者:
2skhul334#
是,你可以用JS把属性添加到HTML文档中所有的链接,文档名为“target”,值为“_blank”;)
也可以使用this打开url到javascript:openInWindow(url)所有链接的replace href,在JS中编写函数打开新窗口,并将其位置设置为url;)谷歌会帮你做到这两点。
nwsw7zdq5#
只需使用Javascript向页面添加一个html
base
元素:rhfm7lfc6#
我使用纯JavaScript创建了一个脚本,使所有链接在一个新窗口中打开。