传统办法,在标签内加属性 代码多,修改难
<a href="link1.htm" οnfοcus="this.blur()">link1</a>
<a href="link1.htm" οnfοcus="this.close()">link1</a>
<a href="link1.htm" hidefocus="true">link1</a>
<a href="link1.htm" hidefocus="hidefocus">link1</a>
<a href="link1.htm" hidefocus>link1</a> 非标准
中级办法,全局控制
CSS实现 增加IE负担,不推荐使用
a{blr:expression(this.onFocus=this.close());}
a{blr:expression(this.onFocus=this.blur());}
HTC实现 IE支持,并有延迟,不推荐
把下面这段代码存为.htc为扩展名的文件
<public:attach event="onfocus" onevent="hscfsy()"/>
<script language="javascript">
function hscfsy(){
this.blur();
}
< /script>
样式调用
a {behavior:url(htc文件所在路径地址)}
高级办法,全局控制
遍历实现
window.οnlοad=function()
{
for(var ii=0; ii<document.links.length; ii++)
document.links[ii].οnfοcus=function(){this.blur()}
}
将其封装为一个函数
function fHideFocus(tName){
aTag=document.getElementsByTagName(tName);
for(i=0;i<aTag.length;i++)aTag[i].hideFocus=true;
//for(i=0;i<aTag.length;i++)aTag[i].οnfοcus=function(){this.blur();};
}
当前是添加一个hidefocus的属性,注释掉的句子是添加onfucus=this.blur();
然后调用fHideFocus("A");即可把a的虚线框去掉
通过传递不同的参数 可以去掉更多的虚线框 比如"BUTTON"可以去掉button的
但要记住参数要用大写字母
应用技巧及疑问
A. map area内链接如何消除链接虚线?
这是一个观念上的错误,其实应该在所在map的图片上加以控制,而不是在area内,参考传统办法
B. 关于onFocus
<a href=“http://blog.csdn.net/alonesword/“ onFocus="this.blur()">
<Img Src="Example.jpg" Border=0>
</a>
其中,onFocus是设置鼠标焦点事件的东西,这个可以用,也可以不用,不过为了让更多的浏览器识别的话,建议采用;Border=0 这个才是去除虚线框的关键所在(在网上看到有的人用onFocus=“this.blur()“来消除虚线框,但在本地测试时,仅仅用这一句是不能消除的)
各位想必都知道,οnfοcus=”this.blur()”这条代码能消除链接时的虚线框,但你有没有想过,如果你的网页上有几个甚至上百个链接,而你又想要去掉上面那些讨厌的虚线框,难道你还一个个去Ctrl+C、Ctrl+V,天哪!这对一个正常人来说绝对是个恶梦。也许你会说,用DW或其它文本编辑器里的“查找/替换”功能就能解决,对!不可否认,这是一个好办法,但作为一个优秀的web developer,用尽可能少的代码实现一样的功能才是我们应当追求的目标,下面我们就用htc来解决这问题。至于htc是什么,全称就是Html Components,由微软在IE5.0后开始提供的一种新的指令组合,它可以把某种特定功能的代码封装在一个组件之中,从而实现了代码的重复使用。作为一个组件,htc里包含了属性、方法、事件等等各种知识,在这里就不一一介绍了,具体内容各位可以参考微软的msdn主页。
回到开始处,Onfocus=this.blur()在这里很显然,onfocus是一个事件,this.blur()则是被事件所触发的对象,既然这点明确了,代码就知道该怎么写了。
<public:attach event=”onfocus” onevent=”example()” />
<script language=”javascript”>
function example(){
this.blur();
}
</script>
将以上代码存为.htc为扩展名的文件,然后再编写一个普通的html网页
<html>
<head>
<style>
a {behavior:url(htc文件所在路径地址)}
</style>
<body>
<a href=”#”>链接1</a>
<a href=”#”>链接2</a>
<a href=”#”>链接3</a>
点链接试试,没有虚线框了吧
</body>
</html>
OK,保存,预览,怎么样?效果出来了吧,再看看代码,的确精简了不少,而且在链接越多时体现得越发明显。最后我要说的是,这还仅仅是htc应用上的冰山一角而已,更多的功能还需要你们去认识,相信有点JS与CSS基础的你一定能学有所成。
<a href="link1.htm" οnfοcus="this.blur()">link1</a>
<a href="link1.htm" οnfοcus="this.close()">link1</a>
<a href="link1.htm" hidefocus="true">link1</a>
<a href="link1.htm" hidefocus="hidefocus">link1</a>
<a href="link1.htm" hidefocus>link1</a> 非标准
中级办法,全局控制
CSS实现 增加IE负担,不推荐使用
a{blr:expression(this.onFocus=this.close());}
a{blr:expression(this.onFocus=this.blur());}
HTC实现 IE支持,并有延迟,不推荐
把下面这段代码存为.htc为扩展名的文件
<public:attach event="onfocus" onevent="hscfsy()"/>
<script language="javascript">
function hscfsy(){
this.blur();
}
< /script>
样式调用
a {behavior:url(htc文件所在路径地址)}
高级办法,全局控制
遍历实现
window.οnlοad=function()
{
for(var ii=0; ii<document.links.length; ii++)
document.links[ii].οnfοcus=function(){this.blur()}
}
将其封装为一个函数
function fHideFocus(tName){
aTag=document.getElementsByTagName(tName);
for(i=0;i<aTag.length;i++)aTag[i].hideFocus=true;
//for(i=0;i<aTag.length;i++)aTag[i].οnfοcus=function(){this.blur();};
}
当前是添加一个hidefocus的属性,注释掉的句子是添加onfucus=this.blur();
然后调用fHideFocus("A");即可把a的虚线框去掉
通过传递不同的参数 可以去掉更多的虚线框 比如"BUTTON"可以去掉button的
但要记住参数要用大写字母
应用技巧及疑问
A. map area内链接如何消除链接虚线?
这是一个观念上的错误,其实应该在所在map的图片上加以控制,而不是在area内,参考传统办法
B. 关于onFocus
<a href=“http://blog.csdn.net/alonesword/“ onFocus="this.blur()">
<Img Src="Example.jpg" Border=0>
</a>
其中,onFocus是设置鼠标焦点事件的东西,这个可以用,也可以不用,不过为了让更多的浏览器识别的话,建议采用;Border=0 这个才是去除虚线框的关键所在(在网上看到有的人用onFocus=“this.blur()“来消除虚线框,但在本地测试时,仅仅用这一句是不能消除的)
各位想必都知道,οnfοcus=”this.blur()”这条代码能消除链接时的虚线框,但你有没有想过,如果你的网页上有几个甚至上百个链接,而你又想要去掉上面那些讨厌的虚线框,难道你还一个个去Ctrl+C、Ctrl+V,天哪!这对一个正常人来说绝对是个恶梦。也许你会说,用DW或其它文本编辑器里的“查找/替换”功能就能解决,对!不可否认,这是一个好办法,但作为一个优秀的web developer,用尽可能少的代码实现一样的功能才是我们应当追求的目标,下面我们就用htc来解决这问题。至于htc是什么,全称就是Html Components,由微软在IE5.0后开始提供的一种新的指令组合,它可以把某种特定功能的代码封装在一个组件之中,从而实现了代码的重复使用。作为一个组件,htc里包含了属性、方法、事件等等各种知识,在这里就不一一介绍了,具体内容各位可以参考微软的msdn主页。
回到开始处,Onfocus=this.blur()在这里很显然,onfocus是一个事件,this.blur()则是被事件所触发的对象,既然这点明确了,代码就知道该怎么写了。
<public:attach event=”onfocus” onevent=”example()” />
<script language=”javascript”>
function example(){
this.blur();
}
</script>
将以上代码存为.htc为扩展名的文件,然后再编写一个普通的html网页
<html>
<head>
<style>
a {behavior:url(htc文件所在路径地址)}
</style>
<body>
<a href=”#”>链接1</a>
<a href=”#”>链接2</a>
<a href=”#”>链接3</a>
点链接试试,没有虚线框了吧
</body>
</html>
OK,保存,预览,怎么样?效果出来了吧,再看看代码,的确精简了不少,而且在链接越多时体现得越发明显。最后我要说的是,这还仅仅是htc应用上的冰山一角而已,更多的功能还需要你们去认识,相信有点JS与CSS基础的你一定能学有所成。