1
otakustay 2014-01-08 01:15:09 +08:00
真相:想~都~别~想
顶多解决一些常见的,比如png背景啊,fixed定位啊,double margin啊,那些坑死人的细节想解决是没门的 比如这种问题:IE6下<head>元素里最后一个元素是<base>时,使用head.appendChild添加元素会变成这个<base>的子元素 很经典的BUG,但一行代码能解决?就算能重写head.appendChild,能保证在这行代码之前没有进行appendChild操作吗 更别说IE6的嵌套document.write输出<script>标签执行顺序混乱,<p>元素里不能套<div>元素,文档未加载完时body.appendChild可能导致出错这些奇葩了 |
2
tokki 2014-01-08 01:18:11 +08:00 via iPhone 2
有效的 alert('you can download chrome here http://google.com/chrome')
|
3
ianva 2014-01-08 01:20:50 +08:00
呵呵
|
7
otakustay 2014-01-08 10:18:07 +08:00
@sapjax 多数浏览器是“不希望你这样做,你要是真做了我给你修复一下”,于是<p><div></div></p>其实也是OK的,但是IE6会直接报错挂掉……
document.getElementsByTagName('p')[0].appendChild(document.createElement('div')) |
8
housne 2014-01-08 10:44:33 +08:00
@otakustay 请先理解下 html 标签的语义 p 表示的是文字段落, div 表示块级,p 里面是不能插入div , 很多人抱怨 ie6 是因为标准没有理解清楚
|
9
otakustay 2014-01-08 13:14:16 +08:00 1
首先我对语义的研究自认为是没问题的,你要说标准那就说说标准,p里面不能套div不是因为p是“文字段落”而div是“块级”,HTML里没有“块级”这个概念,那是CSS的概念。p是phrasing content,翻译为“文字段落”并不精确但也恰当,而div是flow content,无论如何不该翻译为“块级”,至少也是“流式内容”。标准的描述应该是这样:p的内容模型只允许phrasing content作为内容出现,而div是flow content因此无法作为p的内容,导致HTML在嵌套上并不合法。
但是,请注意2点: 1. HTML规范里本身就有一个东西叫“容错性”,你可以参考下HTML的标准文档,有专门一上章节会去说mismatched tag如何处理 2. 再往细地说,使用js来往p里加一个div,这事是DOM管的,不是HTML管的,HTML只是个文本标记语言而已。DOM有提到要符合HTML的嵌套,且不符合规则时应该抛出DOMException,异常内容为HIERARCHY_REQUEST_ERR,那么IE6抛异常了吗,符合标准了吗,就这点上都足够我抱怨他 最后,作为浏览器本身,你不认为无论开发者出了啥错,至少他自己不能崩溃吗?你可以友好地提示,可以页面渲染错误,甚至页面完全不渲染,但是你啪的一下弹个框,点了确定你把自己关了,这样合适吗? 这就好比用户输入一个超长的用户名,你说你后端代码直接就会挂掉,服务器要重启,但这是用户的问题是用户没理解清楚系统对输入的限制,不能怪后端,这能说得通吗?因此这一点上我坚持认为是IE6的一个BUG |
11
mtmzorro 2014-01-08 15:45:45 +08:00
贴个 “一行代码” 出来 观摩下。。。。 同意一楼的 想~都~别~想
|
12
alay9999 2014-01-08 18:50:05 +08:00
一行代码可以引入个 JS 了……
|
14
Mcatt 2014-01-09 09:39:27 +08:00
楼主看错了吧,一行代码检查IE浏览器就有,哪有一行代码能解决兼容性问题。。
有那么厉害的代码,我们前端就不用每天花那么多时间去处理兼容性问题了。 |