在所有链接中定位_blank

时间:2014-06-26 10:48:13

标签: javascript hyperlink target

我刚刚创建了一个目标为_self

的html页面

但是现在我有太多的链接,我想将所有链接目标更改为_blank,这对我来说很难。是否有任何javascript适用于所有只写1次?

因为我的代码太长而且需要花费太多时间来更改所有链接。有诀窍吗?

像这样

<a href="http://www.google.com"></a>
<a href="http://www.facebook.com"></a>
<a href="http://www.gmail.com"></a>
<a href="http://www.twitter.com"></a>
<a href="http://www.stackoverflow.com"></a>
<a href="http://plus.google.com"></a>

5 个答案:

答案 0 :(得分:17)

将其放入<head>

<base target="_blank">

除非指定 target,否则它将使新页面中的所有网址都打开

这是一项仅限HTML5的功能,我是从Google's io-2012-slides slide package了解到的。

答案 1 :(得分:7)

为了回答你的问题,jQuery使这很简单:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
    $(function() {
        $('a[href]').attr('target', '_blank');
    });
</script>

如果没有<a>属性,则不会修改任何href代码。

答案 2 :(得分:1)

如果您无法使用HTML编辑器执行简单的find and replace,则可以使用jQuery执行以下操作:

$('a').click(function() {
  $(this).attr('target', '_blank');
});

对于在新窗口或新标签中点击并打开的每个target="_blank",这将自动执行a(您无法控制此操作,具体取决于用户的浏览器设置)。

FIDDLE

希望这会有所帮助!!

答案 3 :(得分:1)

在简单的JS中它也很简单:

var links = document.getElementsByTagName('a');
for (var i=0, len=links.length; i < len; i ++) {
  links[i].target = '_blank';
}

(将此脚本放在收看的</body>代码之前,或者在页面上的所有<a>代码之后的任何情况下。)

答案 4 :(得分:1)

我必须处理这个很多次。仅供记录:

我认为没有必要让javascript执行此任务,但这是另一种方法,相反,您可以使用编辑器的查找/替换功能并执行此类操作(前提是您的链接是以那种格式):

  • 打开您的编辑器并查找<a href

    Find <a href

  • 在替换字段中输入<a target="_blank" href

    Replace

  • 替换。

    Text replaced

或者,您可以通过查找.com">并将其替换为.com" target="_blank">来将其附加到代码的末尾。您可以在具有查找/替换功能的所有编辑器上执行此操作。这只是找到模式以及如何替换它们的问题。