锁定老帖子 主题:Java工程师不知道的那些FE潜规则
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-25
clue 写道 Frontend Engineer?
有很多东西并不是所有FE都知道,至少我是这样。。。 我也碰到过很多IE坑爹的问题,数不胜数啊,帮你补充一些: 1. IE不支持inline-block,需要inline + hasLayout 2. 各种莫明其妙的布局bug,比如2px bug、3px bug 3. 最常见的JS错误是: [1,2,3,] (其它浏览器都能纠正,IE不行) 4. setInterval或setTimeout触发的JS中调用activex方法阻塞后,其它JS还能继续跑,并且clearInterval与clearTimeout失效。 5. IE8下form、button、input、select、textarea、a、img、object标签都会产生泄漏,移除也不会释放内存,碰到长时间运行、每几秒就用JS更新一次的页面,那就是杯具。 6. mousedown与focus的bug ......实在太多了,一时也想不起来,坑爹啊 从这里就可以看出一个JS框架的重要性 这个不算是js错误吧,[,,,,,,]应该是符合语法要求的。 |
|
返回顶楼 | |
发表时间:2011-08-25
9 对于onchange事件,firefox浏览器可以注册在table,div等组件上,然后通过冒泡,拦截input,select等发出的事件,而IE不行,必须绑定到相应的组件上
这个是因为现代浏览器事件都支持捕获和冒泡阶段,IE只支持冒泡阶段。 楼主有很多重复的内容,可以归结下,原因相同的放一起,然后下面列举常见的现象。整理好了给我们都发一份啊!哈哈! |
|
返回顶楼 | |
发表时间:2011-08-25
Brera 写道 EldonReturn 写道 chenhao_yssy 写道 我进来只是想晓得啥叫FE...
同问,啥叫FE? firefox和IE? 最近正想好好的梳理下自己的JS水平,好好的学习下 我大概猜出来了 - Front Engineer |
|
返回顶楼 | |
发表时间:2011-08-25
补充几个:
1) innerHTML --> 基于Mozilla的浏览器不会返回<style>元素 --> IE返回的元素字符都是大写 2) getAttribute/setAttribute用于class属性时,IE会返回null 3) IE使用独立的全局事件对象window.event,其他浏览器使用独立的包含事件对象的参数传递 4) 取消事件冒泡 --> 标准浏览器: e.stopPropagation(); --> IE浏览器: window.event.cancelBubble = true; 5) 阻止浏览器默认行为的途径: --> 标准浏览器: e.preventDefault(); --> IE浏览器: window.event.returnValue = false; 6) IE的attachEvent方法中,this关键字指向window对象而非当前元素; |
|
返回顶楼 | |
发表时间:2011-08-25
7) 某些ms的浏览器中 Array不存在indexOf方法, String不存在trim方法。
8) 某些ms的浏览器,document对象是不存在querySelector,querySelectorAll这么牛逼的方法的 |
|
返回顶楼 | |
发表时间:2011-08-25
最后修改:2011-08-25
太佩服了、才做了一个月前端就总结这么多了。我总是碰到了才去解决,然后记住,没碰到的先不管,精力有限啊。
|
|
返回顶楼 | |
发表时间:2011-08-25
BuN_Ny 写道 clue 写道 Frontend Engineer?
有很多东西并不是所有FE都知道,至少我是这样。。。 我也碰到过很多IE坑爹的问题,数不胜数啊,帮你补充一些: 1. IE不支持inline-block,需要inline + hasLayout 2. 各种莫明其妙的布局bug,比如2px bug、3px bug 3. 最常见的JS错误是: [1,2,3,] (其它浏览器都能纠正,IE不行) 4. setInterval或setTimeout触发的JS中调用activex方法阻塞后,其它JS还能继续跑,并且clearInterval与clearTimeout失效。 5. IE8下form、button、input、select、textarea、a、img、object标签都会产生泄漏,移除也不会释放内存,碰到长时间运行、每几秒就用JS更新一次的页面,那就是杯具。 6. mousedown与focus的bug ......实在太多了,一时也想不起来,坑爹啊 从这里就可以看出一个JS框架的重要性 这个不算是js错误吧,[,,,,,,]应该是符合语法要求的。 抱歉啊,写错了,应该是{a:1,b:2,} 这种写法,虽然是不符合语法的,但其它浏览器都能自动识别,除了IE |
|
返回顶楼 | |
发表时间:2011-08-25
BuN_Ny 写道 9 对于onchange事件,firefox浏览器可以注册在table,div等组件上,然后通过冒泡,拦截input,select等发出的事件,而IE不行,必须绑定到相应的组件上
这个是因为现代浏览器事件都支持捕获和冒泡阶段,IE只支持冒泡阶段。 楼主有很多重复的内容,可以归结下,原因相同的放一起,然后下面列举常见的现象。整理好了给我们都发一份啊!哈哈! 很多我只知道现象,和怎么解决,因为我是Java工程师,没有系统学习过JS,所以很多东西不懂。 什么叫支持捕获和冒泡阶段啊。冒泡我知道,就是一层层网上传。 |
|
返回顶楼 | |
发表时间:2011-08-25
BuN_Ny 写道 补充几个:
1) innerHTML --> 基于Mozilla的浏览器不会返回<style>元素 --> IE返回的元素字符都是大写 2) getAttribute/setAttribute用于class属性时,IE会返回null 3) IE使用独立的全局事件对象window.event,其他浏览器使用独立的包含事件对象的参数传递 4) 取消事件冒泡 --> 标准浏览器: e.stopPropagation(); --> IE浏览器: window.event.cancelBubble = true; 5) 阻止浏览器默认行为的途径: --> 标准浏览器: e.preventDefault(); --> IE浏览器: window.event.returnValue = false; 6) IE的attachEvent方法中,this关键字指向window对象而非当前元素[color=red][/color]; 能通俗的讲讲this的几种特殊情况吗?看过一些文章写的,搞得什么主动被动的,总感觉理解起来很不直观 |
|
返回顶楼 | |
发表时间:2011-08-25
ximenblog 写道 建议作者看一般书<javascript高级程序设计>, 书的作者是尼古拉斯 ,此书里面对于浏览器的兼容性有很详细的code解释
我今早快速的翻了一下目录,发现我遇到的这些问题在那书里还真没有 |
|
返回顶楼 | |