对《精通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; } } } }