木子屋 Dnawo's BLOG

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

👤 dnawo 📅 2008-10-29 👁 4535 👍 0 💬 0 🔄 本站原创
要求:当链接地址中含有.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)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 在DOM对象后面插入一个同级对象 下一篇 → 悟空网盟手机发送专用链脚本