添加target ="_ blank"以链接JavaScript

Pau*_*aul 7 javascript

我需要编写一个方法,它接受一个String并解析它的链接(一个href).如果它找到了一个链接,它应该在链接中添加target ="_ blank",如果它还没有.

示例:Inputstring"

 <a href="www.google.com">Google</a> and <a href="www.yahoo.com"> target="_blank">Yahoo</a> are search engines
Run Code Online (Sandbox Code Playgroud)

...应该导致输出String

<a href="www.google.com" target="_blank">Google</a> and <a href="www.yahoo.com" target="_blank">Yahoo</a> are search engines
Run Code Online (Sandbox Code Playgroud)

知道如何实现这个吗?

tim*_*ail 13

普通的js并不是很难.

var links = document.getElementsByTagName('a');
var len = links.length;

for(var i=0; i<len; i++)
{
   links[i].target = "_blank";
}
Run Code Online (Sandbox Code Playgroud)


mae*_*ics 7

充满问题,但可以使用纯JavaScript:

function addBlankTargets(s) {
  return (""+s).replace(/<a\s+href=/gi, '<a target="_blank" href=');
}
Run Code Online (Sandbox Code Playgroud)

或者使用jQuery:

function addBlankTargets(s) {
  var p = $('<p>' + s + '</p>');
  p.find('a').attr('target', '_blank');
  return p.html();
}
var s = '<a href="www.google.com">Google</a> and '
      + '<a href="www.yahoo.com">Yahoo</a> '
      + 'are search engines.';
var x = addBlankTargets(s);
x; // => '<a href="www.google.com" target="_blank">Google</a> and
   //     <a href="www.yahoo.com" target="_blank">Yahoo</a>
   //     are search engines.'
Run Code Online (Sandbox Code Playgroud)