javascript - 将 target=_blank 添加到 HTML 字符串中的每个链接

标签 javascript html dom hyperlink

我有一个字符串 s (一段 HTML 格式的文本)我用它把它包含在 div 中.

document.getElementById("mydiv").innerHTML = s;

s可能包含一些 <a href="...">...</a>链接。 如何自动添加target="_blank"到这些链接?(这样如果用户点击它们,它就不会替换当前页面)

我正在考虑使用某种正则表达式来检测 s 中的链接,检测target=_blank是否已经存在,如果不存在则添加,但这看起来很复杂。 添加 target=_blank 会更好吗?在 s 之后在 .innerHTML = s 之后插入到 DOM 中?如果是,怎么办?

最佳答案

在使用 innerHTML 添加 anchor 后,使用 querySelectorAll() 遍历所有 anchor 。然后使用 setAttribute() 设置 target 属性,如下所示:

document.querySelectorAll("#mydiv a").forEach(function(a){
  a.setAttribute('target', '_blank');
})

关于javascript - 将 target=_blank 添加到 HTML 字符串中的每个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49447677/

相关文章:

JavaScript:DOM 文本节点

javascript - 使用 JavaScript 从 TextArea 中提取所有 h6 标签

javascript - ASP.NET <form runat=server> 破坏了 jQuery

javascript - 使用 jQuery 函数时检查 DOM "travels"的数量

html - 用均匀的空间证明 Bootstrap navbar-nav 列表项

javascript - html4 中的自定义键盘 Tab 键顺序

javascript - Overpass api 请求中位置 0 处的 JSON 中出现意外 token <

html - 固定底部不适用于有溢出的父级

html 2 div容器定位

javascript - 如何获取选择 HTML 和选择父级?