js处理页面上符合某一特征的所有链接

要求:当链接地址中含有.jar、.jad、.sis、.sisx、.txt、.rar、.zip等扩展名时则在链接前加一个木子屋的链接。

实现脚本一:
<script type="text/javascript">
for(var i=0;i<document.links.length;i++)
{
    var currentLink = document.links[i];
    var currentLinkHref = currentLink.href.toLowerCase();
    if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig))
    {
        //alert(document.links.length);
        //创建链接对象
        var newLink = document.createElement("a");
        newLink.href = "http://www.mzwu.com/";
        newLink.innerHTML = "木子屋";
        //创建文本对象
        var textNode = document.createTextNode(" | ");
        
        //显示链接
        currentLink.parentNode.insertBefore(newLink,currentLink);
        currentLink.parentNode.insertBefore(textNode,currentLink);
        
        i++;//解决死循环Bug
    }
}
</script>

实现脚本二:
<script type="text/javascript">
var arrLinks = [];
for(var i=0;i<document.links.length;i++)arrLinks.push(document.links[i]);
for(var i=0;i<arrLinks.length;i++)
{
    var currentLink = arrLinks[i];
    var currentLinkHref = currentLink.href.toLowerCase();
    if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig))
    {
        //alert(document.links.length);
        //创建链接对象
        var newLink = document.createElement("a");
        newLink.href = "http://www.mzwu.com/";
        newLink.innerHTML = "木子屋";
        //创建文本对象
        var textNode = document.createTextNode(" | ");
        
        //显示链接
        currentLink.parentNode.insertBefore(newLink,currentLink);
        currentLink.parentNode.insertBefore(textNode,currentLink);
    }
}
</script>

在实现过程中需要注意的是document.links会随着木子屋链接的添加而发生变化,上边两个脚本都针对这一问题进行了处理,如脚本一中使用"i++",脚本二中先将document.links赋给一个数组。

下边几个脚本为测试过中写的,都存在着一些问题,无法正确的完成所需功能:

错误脚本一:
<script type="text/javascript">
var iLength = document.links.length;
for(var i=0;i<iLength;i++)
{
    var currentLink = document.links[i];
    var currentLinkHref = currentLink.href.toLowerCase();
    if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig))
    {
        //alert(document.links.length);
        //创建链接对象
        var newLink = document.createElement("a");
        newLink.href = "http://www.mzwu.com/";
        newLink.innerHTML = "木子屋";
        //创建文本对象
        var textNode = document.createTextNode(" | ");
        
        //显示链接
        currentLink.parentNode.insertBefore(newLink,currentLink);
        currentLink.parentNode.insertBefore(textNode,currentLink);
    }
}
</script>

错误脚本二:
<script type="text/javascript">
for(var i=0;i<document.links.length;i++)
{
    var currentLink = document.links[i];
    var currentLinkHref = currentLink.href.toLowerCase();
    if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig))
    {
        //alert(document.links.length);
        //创建链接对象
        var newLink = document.createElement("a");
        newLink.href = "http://www.mzwu.com/";
        newLink.innerHTML = "木子屋";
        //创建文本对象
        var textNode = document.createTextNode(" | ");
        
        //显示链接
        currentLink.parentNode.insertBefore(newLink,currentLink);
        currentLink.parentNode.insertBefore(textNode,currentLink);
    }
}
</script>

错误脚本三:
<script type="text/javascript">
var arrLinks = document.links;
for(var i=0;i<arrLinks.length;i++)
{
    var currentLink = arrLinks[i];
    var currentLinkHref = currentLink.href.toLowerCase();
    if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig))
    {
        //alert(document.links.length);
        //创建链接对象
        var newLink = document.createElement("a");
        newLink.href = "http://www.mzwu.com/";
        newLink.innerHTML = "木子屋";
        //创建文本对象
        var textNode = document.createTextNode(" | ");
        
        //显示链接
        currentLink.parentNode.insertBefore(newLink,currentLink);
        currentLink.parentNode.insertBefore(textNode,currentLink);
    }
}
</script>


评论: 0 | 引用: 0 | 查看次数: 3924
发表评论
登录后再发表评论!