从特定<form>或<div>新选项卡中打开链接


的链接。

是否可以在新选项卡中打开<form><div>中的所有链接? 我知道有target="_blank"但是是否有可能对所有链接执行此操作?

您可以编写一个简单的脚本来执行此操作。获取所有锚标记,以编程方式迭代并将目标设置为空白。

<script>
var elements = document.getElementsByTagName("a");
for (let item of elements) {
item.setAttribute("target", "_blank")
}
</script>

不幸的是,没有本机方法可以做到这一点。 但是,我们可以使用一些简单的jQuery/js来应用我们自己的逻辑。

注意由于allow-popups权限,StackOverflow 的沙盒不允许在片段中弹出弹出窗口

j查询:

// For each <a> inside a <form>
$('form a').each(function (i, el) {
// Set target=_blank
$(el).attr("target","_blank");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<a href="https://google.com">Google</a>
<a href="https://twitter.com">Twitter</a>
</form>

.JS

// All <forms>
var forms = document.getElementsByTagName('form');
Array.prototype.slice.call(forms).forEach(function (form) {

// All <a>
var links = form.getElementsByTagName('a');
Array.prototype.slice.call(links).forEach(function (link) {

// Set target=_blank
link.setAttribute("target", "_blank")
})
});
<form>
<a href="https://google.com">Google</a>
<a href="https://twitter.com">Twitter</a>
</form>


您可以通过将硬formgetElementsByTagName('form')更改为更具体的内容(例如类选择器,甚至是 id(来自定义上述内容。
通过CSS应用target=_blank很简单,但它似乎还没有实现。

最新更新