某站外链统一新窗口打开脚本分析

来源:互联网 发布:浙江11选5遗漏数据 编辑:程序博客网 时间:2024/05/17 02:15
本文本转自:http://www.scriptlover.com/static/1248-javascript-%E9%93%BE%E6%8E%A5-%E7%AA%97%E5%8F%A3


在写博客的时候,添加的友情链接,引用别的网站的链接,或者是图片等资源,我们希望外链可以在新窗口打开,一个一个的去设置target="_blank"实在太繁琐了,因此就写了一段javascript来完成,对于本站来说,只需要如下脚本即可:


详细分析
function openLinks(){ 
    
    var anchors = document.getElementsByTagName("a"); // 取得标签A,所有的
    var anchor = null, rel = "", href = "";

    for (var i=0; i<anchors.length; i++){ // 遍历取得的所有标签A,循环操作
        anchor = anchors[i]; // 单独提取出来一个


        href = anchor.getAttribute("href"); // getAttribute() 方法通过名称获取属性的值。即 href 的值。

        if(href && href.indexOf("http://") > -1 && href.indexOf("scriptlover.com") == -1)
// indexOf 查找字符串的下标值,如果没有查到返回 -1 ,这里表示,查得的是个网址,并且不是 scriptlover.com 站的话就弹出新窗口,否则不操作。
        {
            anchor.setAttribute("target" , "_blank"); 
        }

/*
* <a> 标签的 rel 属性用于指定当前文档与被链接文档的关系。
  用于 <a> 标签的可选属性 rel 和 rev 分别表示源文档与目标文档之间正式的关系和方向。rel 属性指定从源文档到目标文档的关系,而 rev 属性则指定从目标文档到源文档的关系。这两种属性可以在 <a> 标签中同时使用。
rel 或 rev 属性的值都是以空格分隔的关系列表。实际的关系名和它们的含义取决于你自己:HTML 或 XHTML 标准并没有正式提出这两种属性。例如,一系列文档中的某个文档可能会在链接中包含它的关系:


<a href="part_12.html" rel="next" rev="prev">

从源到目标的关系是移动到下一个文档,而从目标到源的关系则是返回前一个文档。

*/



        rel = anchor.getAttribute("rel");
        if (rel == "external" || rel == "nofollow")// 这里判断是外部的关系吗
        {
            anchor.setAttribute("target" , "_blank"); 
        }
    } 
}
原创粉丝点击