[JavaScript]让网页的“外部超连结”自动开启在新视窗

在编辑网页时,如果要让某个超连结 (Link) 开启在新的浏览器视窗,我们可以在超连结加上“href="_blank"”属性,但如果超连结很多,要一个一个加上去毕竟麻烦!!

以下的程式码可以帮你把网页内所有针对“外部”的超连结自动设为在新视窗开启。

一般网页

  1. 将下列程式码加到网页的 <head> 区段:
    <script type="text/javascript">
    function parseLink(){
      var tagA = document.getElementsByTagName( "a" );
      re = new RegExp( "^(http://" + document.domain + ")|(javascript:)", "i" );
      for( var i=0; i < tagA.length; i++ ){
        if( !tagA[i].href.match( re ) ){ tagA[i].target = "_blank"; }
      }
    }
    </script>
  2. 在 <body> 标签内的 onload 事件加入:
    parseLink();

    Ex:

    <body onload="parseLink();">

WordPress 外挂程式

如果你的网站是用 WordPress 架设,可直接在控制台搜寻并安装“Open external links in a new window”这个外挂程式 (版本: 1.3.1 作者: Kristian Risager Larsen),这样就不用添加任何程式码了。

另外需注意,如果本外挂程式与其它像 LightBox、FancyBox...之类的图片灯箱特效的程式一起使用,有可能会造成同时显示灯箱特效,又同时将图片开启于新视窗!!

    • fukid
    • 01/05. 2008 2:03上午
    • CityPig
    • 01/06. 2008 10:24上午

    Base Tag 是让 "所有的" 超连结都开启在新视窗,上面的程式是让 "本站以外" 的超连结自动开启在新视窗,站内的超连结还是开启在原视窗。

    • 阿丹
    • 06/20. 2010 11:48上午
    Using Google Chrome Google Chrome 5.0.375.70 on Windows Windows 7

    你好
    请问一下
    第二段的parseLink();
    是要加在ONLOAD的哪边呢? 不好意思我试了很久不行才来询问的...

    感谢

    下面是我BLOG的程式码
    --------------------------------------------------------------------------------------------
    google.annotations.createAll();
    google.annotations.fetch();
    }
    google.setOnLoadCallback(initialize);

    ---------------------------------------------------------------------------------------------

  1. Using Mozilla Firefox Mozilla Firefox 3.5.9 on Windows Windows Vista

    To 阿丹:
    找找看样板里有没有 "<body>" 这标签,改成:
    <body onload="parseLink()">

    • 苦恼的人
    • 07/26. 2010 3:22下午
    Using Mozilla Firefox Mozilla Firefox 3.6.7 on Windows Windows XP

    你好,我想请问一下,function的程式码中有需要修改的地方吗?

    因为我照着修改还是会在原本的页面开启连结,还是说是因为我的网页是导入的页面,所以不可以用此方法呢?

    • 在Blogger上出错
    • 10/28. 2010 10:36下午
    Using Google Chrome Google Chrome 7.0.517.41 on Windows Windows XP

    我们无法剖析您的范本,因为它的结构不完整。 请确定所有的 XML 元素均已正确关闭。
    XML 错误讯息: Element type "tagA.length" must be followed by either attribute specifications, ">" or "/>".
    好像是判读小于的问题...奇怪...

    • 在Blogger上出错
    • 10/28. 2010 10:51下午
    Using Google Chrome Google Chrome 7.0.517.41 on Windows Windows XP

    找到解答了 用字符i<代替<

    • livia
    • 07/03. 2015 11:59上午
    Using Mozilla Firefox Mozilla Firefox 38.0 on Windows Windows XP

    站长您好,我找这个功能很久了,请问在wordpress有方法进行同样的设定吗?谢谢!!

    • Using Mozilla Firefox Mozilla Firefox 38.0 on Windows Windows NT

      在 WordPress 可直接在控制台搜寻并安装 Open external links in a new window 这个外挂程式 (版本: 1.3.1 作者: Kristian Risager Larsen),就不用修改程式码了。

        • livia
        • 07/07. 2015 3:13下午
        Using Mozilla Firefox Mozilla Firefox 39.0 on Windows Windows XP

        谢谢回答,已安装可以正常运行,谢谢^_____^
        p.s. 我有勾选"用电子邮件通知我后续的回响",可是似乎没有收到回信...

    • Alpha
    • 08/25. 2016 11:24上午
    Using Google Chrome Google Chrome 52.0.2743.116 on Windows Windows 7

    请问,我要如何让“子网域”也视为“站外”
    让它在新视窗开启呢?

  1. 04/22. 2009

return top

%d 位部落客按了赞: