论坛首页 Web前端技术论坛

Java工程师不知道的那些FE潜规则

浏览 18353 次
精华帖 (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错误吧,[,,,,,,]应该是符合语法要求的。
0 请登录后投票
   发表时间:2011-08-25  
9 对于onchange事件,firefox浏览器可以注册在table,div等组件上,然后通过冒泡,拦截input,select等发出的事件,而IE不行,必须绑定到相应的组件上

这个是因为现代浏览器事件都支持捕获和冒泡阶段,IE只支持冒泡阶段。
楼主有很多重复的内容,可以归结下,原因相同的放一起,然后下面列举常见的现象。整理好了给我们都发一份啊!哈哈!
0 请登录后投票
   发表时间:2011-08-25  
Brera 写道
EldonReturn 写道
chenhao_yssy 写道
我进来只是想晓得啥叫FE...

同问,啥叫FE?

firefox和IE?
最近正想好好的梳理下自己的JS水平,好好的学习下

我大概猜出来了 - Front Engineer
0 请登录后投票
   发表时间: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对象而非当前元素;
0 请登录后投票
   发表时间:2011-08-25  
7) 某些ms的浏览器中 Array不存在indexOf方法, String不存在trim方法。
8) 某些ms的浏览器,document对象是不存在querySelector,querySelectorAll这么牛逼的方法的
0 请登录后投票
   发表时间:2011-08-25   最后修改:2011-08-25
太佩服了、才做了一个月前端就总结这么多了。我总是碰到了才去解决,然后记住,没碰到的先不管,精力有限啊。
0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间:2011-08-25  
BuN_Ny 写道
9 对于onchange事件,firefox浏览器可以注册在table,div等组件上,然后通过冒泡,拦截input,select等发出的事件,而IE不行,必须绑定到相应的组件上

这个是因为现代浏览器事件都支持捕获和冒泡阶段,IE只支持冒泡阶段。
楼主有很多重复的内容,可以归结下,原因相同的放一起,然后下面列举常见的现象。整理好了给我们都发一份啊!哈哈!


很多我只知道现象,和怎么解决,因为我是Java工程师,没有系统学习过JS,所以很多东西不懂。
什么叫支持捕获和冒泡阶段啊。冒泡我知道,就是一层层网上传。
0 请登录后投票
   发表时间: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的几种特殊情况吗?看过一些文章写的,搞得什么主动被动的,总感觉理解起来很不直观
0 请登录后投票
   发表时间:2011-08-25  
ximenblog 写道
建议作者看一般书<javascript高级程序设计>,  书的作者是尼古拉斯 ,此书里面对于浏览器的兼容性有很详细的code解释

我今早快速的翻了一下目录,发现我遇到的这些问题在那书里还真没有
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics