去除超链接虚线--全面分析总结

传统办法,在标签内加属性 代码多,修改难

  
  
  
  
  1. <a href="link1.htm" onfocus="this.blur()">link1</a> 
  2. <a href="link1.htm" onfocus="this.close()">link1</a> 
  3. <a href="link1.htm" hidefocus="true">link1</a> 
  4. <a href="link1.htm" hidefocus="hidefocus">link1</a> 
  5. <a href="link1.htm" hidefocus>link1</a> 非标准 

中级办法,全局控制 
CSS实现 增加IE负担,不推荐使用

  
  
  
  
  1. a{blr:expression(this.onFocus=this.close());}  
  2. a{blr:expression(this.onFocus=this.blur());} 

HTC实现 IE支持,并有延迟,不推荐
把下面这段代码存为.htc为扩展名的文件 网管联盟bitsCN@com 

  
  
  
  
  1. <public:attach event="onfocus" onevent="hscfsy()"/>  
  2. <script language="javascript">  
  3. function hscfsy(){  
  4. this.blur();  
  5. }  
  6. < /script> 

样式调用
a {behavior:url(htc文件所在路径地址)}
高级办法,全局控制
遍历实现 

  
  
  
  
  1. window.onload=function()  
  2. {  
  3. for(var ii=0; ii<document.links.length; ii++)  
  4. document.links[ii].onfocus=function(){this.blur()}  
  5. }   

将其封装为一个函数 

  
  
  
  
  1. function fHideFocus(tName){  
  2. aTag=document.getElementsByTagName(tName);  
  3. for(i=0;i<aTag.length;i++)aTag[i].hideFocus=true;  
  4. //for(i=0;i<aTag.length;i++)aTag[i].onfocus=function(){this.blur();};  
  5. }  

当前是添加一个hidefocus的属性,注释掉的句子是添加onfucus=this.blur();
然后调用fHideFocus("A");即可把a的虚线框去掉
通过传递不同的参数 可以去掉更多的虚线框 比如"BUTTON"可以去掉button的
但要记住参数要用大写字母

应用技巧及疑问

A. map area内链接如何消除链接虚线?

这是一个观念上的错误,其实应该在所在map的图片上加以控制,而不是在area内,参考传统办法

B. 关于onFocus 

  
  
  
  
  1. <a href=“http://blog.csdn.net/alonesword/“ onFocus="this.blur()">   
  2. <Img Src="Example.jpg" Border=0>   
  3. </a> 

其中,onFocus是设置鼠标焦点事件的东西,这个可以用,也可以不用,不过为了让更多的浏览器识别的话,建议采用;Border=0 这个才是去除虚线框的关键所在(在网上看到有的人用onFocus=“this.blur()“来消除虚线框,但在本地测试时,仅仅用这一句是不能消除的) 

网管联盟bitsCN@com

【转自www.bitsCN.com】

你可能感兴趣的:(超链接,标签,传统)