对《精通HTML》第二章“点击弹出新窗口”的JS程序改进
在《精通HTML:语义、标准和样式》第二章中有个“点击弹出新窗口”的 JavaScript 解决方法,代码如下:
function popup(){
if(!document.getElementsByTagName || !document.getElementsByTagName("a")) return false;
a = document.getElementsByTagName("a");
for(i=0;i< a.length;i++) {
if(a[i].getAttribute("rel") && a[i].getAttribute("rel") == "external") {
a[i].onclick = function() {
window.open(this.getAttribute('href'));
return false;
};
}
}
}
在web文档中,定义a 的属性rel为external弹出新窗口,用来代替target="_blank"。
由于上面的程序代码中有变量作用域等几个小 bug 所以编写得不够完善,下面稍微进行了改进:
/*
popup
将文档中所有在 rel 属性中含 external 的链接添加弹出新的窗口的功能
*/
function popup()
{
if(!document.getElementsByTagName || !document.getElementsByTagName('a')) return;
var as=document.getElementsByTagName('a');
var relAtt;
for(var i=0; i< as.length; i++)
{
relAtt=as[i].getAttribute('rel');
if(relAtt&&relAtt=='external')
{
as[i].onclick=function(){
window.open(this.href);
return false;
}
}
}
}
浙公网安备 33010602011771号