【随笔】近期前端开发中IE6的一些诡异神奇bugs
在这个万恶的IE6还生存的年代,我们很多时候都会遇到一些莫名其怪的诡异bugs,而这些很大部分都是来源与IE6。
1。神奇的cursor
这段看起来很普通的代码,却蕴藏着一个bug,就是在IE6下,当鼠标离开时,a标签的样式cursor:url("none");同时会产生一个404的请求,其它浏览器,
一切正常。解决方案:cursor="default";就没事了。
2。神奇的a标签地址
2
3 <script>
4 document.getElementById("a").href="111@163.com";
5 </script>
当动态修改A标签的href的值,其值存在email的格式,IE6就会很智能的把innerHTML的值也改为href的值,其它浏览器一切正常。
解决方案:在email地址前加个空格就可以了。
3。神奇的a标签aborted
在IE6下点击此连接时,不会跳转,反而会返回一个aborted的状态。其它浏览器均正常。
解决方案:在最后return false;就可以了。
4。奇怪的tr元素
alert(tr.cells.length);
你会发现,在IE6先,是会报错的,cells未定义。在其它的浏览器,会弹出0;
如果你将tr元素添加进table中,则ie6也会弹出0;
5。奇怪的form与iframe
<input type="submit" value="submit" />
</form>
<iframe name="iframeform" display="none;"></iframe>
一个很正常的需求,就是希望提交表单后,不刷新页面。
问题就来了:form提交的地址是另外一边服务器的地址,就是域名都不同那种,而且我是不能修改那边代码,如果账号密码错误了,会返回一段js,
其中一句:history.go(-1);
如果我是直接输入本页面地址,是没有什么问题,但如果我是从搜索引擎或者其它页面连接过来的,密码一错,就跳回那个页面了。杯具。。。
后来知道原因:就是历史记录,所以iframe里面的src我就设置连接到一个小图标。但又出问题了,其它浏览器都可以,就是IE6提交不了。。。
又发现原因:图标的域名与当前域名不相当,IE6提交不了给它,所以,最终换成本域名的,问题就解决了。
6。顺带提一个chrome的问题,当你定义一个全局变量:var status = {};
之后typeof status,在chrome下为string,在其它浏览器下为object。估计是跟window.status有关。
暂时就这么多。。。