经常遇到莫名其妙让IE6崩溃的事情。今天看到了一篇好文章,数字生活整理整理发上来,以后开发的时候要注意了。
鉴于国内IE6的市场份额还在主流的情况,一定要避免出现以下情况。
IE6真脆弱啊
1.设置scrollbar-base-color,css里给table做了定位,再通过js改变其定位IE6就崩溃了。
关键代码:
<style type="text/css">
html, body {
scrollbar-base-color: #330066;
}
.crash {
position:absolute;
left:200px;
top:200px;
width:200px;
}
</style>
<script type="text/javascript">
function galgenfrist() {
window.setTimeout('crashIE();',1000);
}
function crashIE() {
var moveNode = document.getElementById("move");
if(moveNode) {
moveNode.style.top = "100px";
moveNode.style.left = "200px";
}
}
</script>
<body οnlοad="galgenfrist();">
<div id="move" class="crash">
<table>
<tbody>
<tr>
<td>
<textarea></textarea>
</td>
</tr>
</tbody>
</table>
</div>
</body>
html, body {
scrollbar-base-color: #330066;
}
.crash {
position:absolute;
left:200px;
top:200px;
width:200px;
}
</style>
<script type="text/javascript">
function galgenfrist() {
window.setTimeout('crashIE();',1000);
}
function crashIE() {
var moveNode = document.getElementById("move");
if(moveNode) {
moveNode.style.top = "100px";
moveNode.style.left = "200px";
}
}
</script>
<body οnlοad="galgenfrist();">
<div id="move" class="crash">
<table>
<tbody>
<tr>
<td>
<textarea></textarea>
</td>
</tr>
</tbody>
</table>
</div>
</body>
用IE6点击测试。
2.document.write
<script>for (x in document.write) { document.write(x);}</script>
在FF和Chrome中,都会打印出“prototype”字符,在IE6中立即崩溃。
用IE6点击测试。
3.在CSS中使用通配符*,在HTML的table标签中直接放置内容(而不是<tr>标签之类)
<style>*{position:relative}</style><table>aaabbbccc</table>
用IE6点击测试。
4.CSS中出现@+任意字符+/* 立即崩溃
<style>@;/*</style>
用IE6点击测试。
5.οnlοad="window()"
<body οnlοad="window()"></body>
用IE6点击测试。
注:原文中有6个导致崩溃的问题,我装的是IETester,有一个没有测出来。所以没写上来。