日记列表

- 2007年03月15日 04:07 星期四
在opera下超链接颜色为红色?
我的网站在opera下一直会出现一个很奇怪的现象,所有超链接的颜色都是红色(见下图)
,一直在寻找css的问题一直没有找到。
今天下午在小毅
的提醒下,我试着将js禁用,发现链接颜色恢复正常!
难道是我的脚本里设置了超链接颜色??貌似我不会自己做这种事情,那会是谁做的?
我突然注意到一点,颜色出错的超链接都是没单独定义颜色的,它们都是继承自全局的超链接颜色设置,那会不会是我哪里的程序修改了全局的样式呢?
我再次检查我的脚本,我看了一下我的脚本文件,最终注意力集中在实现自定义tooltip的脚本文件上,所有的脚本,只有这个是我从网上取得,稍加修改使用的,难道是它?
我打开tooltip.js,巡视了代码,但并没看见什么设置样式表的函数,除了一个:
- function AddCss(){
- var l=CreateEl("link");
- l.setAttribute("type","text/css");
- l.setAttribute("rel","stylesheet");
- l.setAttribute("href","bt.css");
- l.setAttribute("media","screen");
- document.getElementsByTagName("head")[0].appendChild(l);
- }
这个函数的作用是将tooltip对应的样式表动态加载进来,由于我后来修改了路径及文件名,这段脚本实际上已经不起作用。我顺手将它注释。奇迹发生了……我发现在opera下超链接颜色正常了……
我开始检查opera的error console(下图),发现里面关于这个css的错误很多,居然有中文?我直接访问这个css的地址,文件不存在,出来的当然是一个404的页面。
404...404的超链接就是红色的...我查看了一下源代码:
- BODY { font: 9pt/12pt 宋体 }
- H1 { font: 12pt/15pt 宋体 }
- H2 { font: 9pt/12pt 宋体 }
- A:link { color: red }
- A:visited { color: maroon }
color: red,我苦苦寻找不得的这句话居然出现在一个404页面里……
至此,问题解决。由于自己的小疏忽或者叫做懒惰,没去除无效代码,而导致在一个特定的浏览器下出现奇怪的显示错误。不过话说回来,opera对文件的解析能力也真强……ie、ff在读到404错误之后就停止获取文件内容,而opera不仅继续解析,还把404页面中的样式表读了进来,搞了这么一个“有趣”的bug……无语
在郁闷之后冷静下来想想,自己其实也有很大的责任,对技术的不严谨是造成这次莫名其妙错误的根源,在未详细理解一段代码的情况下就贸然使用,虽然一开始无甚大错,但在某个特定情境下也许就会触发这隐藏的祸患。
在最后再次感谢小毅和怿飞
,他们在这次解决问题中给了不小的帮助,谢谢。






idea's blog
布拉格公园
冷韵的文字空间
Dawn.w/s weblog - Agoodb
Owen's Diary
我们俩