精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (15)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-23
1.document.formName.item("itemName") 问题 2.集合类对象问题 3.自定义属性问题 4.eval("idName")问题 5.变量名与某HTML对象ID相同的问题 7.input.type属性问题 9.event.x与event.y问题 10.event.srcElement问题 13.frame问题 (1)访问frame对象: (2)切换frame内容: 如果需要将frame中的参数传回父窗口,可以在frme中使用parent来访问父窗口。例如:parent.document.form1.filename.value="Aqing"; 14.body问题 例如: 15. 事件委托方法 Firefox:document.body.onload = inject(); 有人说标准是: 16. firefox与IE(parentElement)的父元素的区别 解决方法: 因为firefox与IE都支持DOM,因此使用obj.parentNode是不错选择. 17.innerText在IE中能正常工作,但是innerText在FireFox中却不行. document.getElementById('element').innerText = "my text"; } else{ document.getElementById('element').textContent = "my text"; } 18. FireFox中类似 obj.style.height = imgObj.height 的语句无效 19. ie,firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。 20. padding 问题 必须改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px; 21. 消除ul、ol等列表的缩进时 其中margin属性对IE有效,padding属性对FireFox有效 22. CSS透明 FF:opacity:0.6。 23. CSS圆角 FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。 24. CSS双线凹凸边框 FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080; 25.ie支持document.all 而firefox 不支持 26、firefox 中使用innerHTML 的方法 27、eval()与window.execScript()执行脚本 解决:统一使用eval() 28、对事件处理函数的重写 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-25
这些都是该死的dom吧 javascript在个浏览器差异很小 ecma-262是一个标准
|
|
返回顶楼 | |
发表时间:2011-02-28
用jquery吧
|
|
返回顶楼 | |
发表时间:2011-03-01
貌似还是比较全。
|
|
返回顶楼 | |
发表时间:2011-03-01
学习了,自己积累的,补充点!
1、setAttribute FF:setAttribute('class',value) IE:setAttribute('className',value) FF:setAttribute('style',value) IE:domObj.style.cssText=value 2、getElementsByName IE也会返回id等于给定名称的元素 3、getElementById 对于给定的ID匹配某个元素的name属性,IE还会返回这个元素 3.Table的insertRow()方法对于IE可以不用传递参数,但是对于FireFox必须传递。 4.var s = 'asldjljflasjdlfjsadljflkjasldjfl\ sajddajflsjdflajfdlkjsadf\ askdjflsajdlfkjsalkfdjsalkd'; 换行\ 5.对于table里的td里面如果没有内容,那么IE显示就有问题。 6.IE:获取事件鼠标位置时,IE用的是event.x和event.y,并且值在不加单位的情况下可以直接使用,IE提供默认单位; div.style.left = event.x div.style.top = event.y 此时,div显示的位置为鼠标的位置。 FF:获取事件鼠标位置时,Firefox用的是MouseEvent.pageX和MouseEvent.pageY,并且在不加单位的情况下直接赋值后,无效;必须添加单位。 div.style.left = MouseEvent.pageX div.style.top = MouseEvent.pageY 此时,div显示的位置为0,0. 建议:都添加单位,无论针对IE或者Firefox都有效。 IE:div.style.left = event.x+'px' div.style.top = event.y+'px' FF:div.style.left = MouseEvent.pageX+'px' div.style.top = MouseEvent.pageY+'px' 7.String没有trim()方法,而在firefox中提供了实现。IE中没有。 8.IE中Date.parse函数,对于这种'2010-10-01'格式的日期,IE返回NaN,FireFox正常解析; 对于10/01/2010这种格式两种浏览器通用。 9.对与String对象的补充两种方法: String.prototype.trim=function(){ var reExtraSpace=/^\s+(.*?)\s$/; return this.replace(reExtraSpace,'$1'); } String.prototype.replaceAll=function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); } ===================================================================================== 1:innerText IE支持,FIREFOX不支持 解决办法:用innerHTML,2种浏览器都识别innerHTML 2:document.createElement document.appendChild 在往表里插入行时 FIREFOX支持,IE不支持 解决办法:把行插入到TBODY中,不要直接插入到表 3:setAttribute('style','color:red;') FIREFOX 支持(除了IE,现在所有浏览器都支持),IE不支持 解决办法:不用setAttribute('style','color:red') 而用object.style.cssText = 'color:red;'(这写法也有例外) 最好的办法是上面种方法都用上,万无一失 ^_^ 4:class setAttribute('class','styleClass') FIREFOX 支持,IE不支持(指定属性名为CLASS,IE不会设置元素的CLASS属性,相反只使用SETATTRIBUTE时IE自动识别CLASSNAME属性) 解决办法: setAttribute('class','styleClass') setAttribute('className','styleClass') 2 种都用上 5:用setAttribute设置事件 var obj = document.getElementById('objId'); obj.setAttribute('onclick','funcitonname();'); FIREFOX 支持,IE不支持 解决办法: IE中必须用点记法来引用所需的事件处理程序,并且要用赋予匿名函数 如下: var obj = document.getElementById('objId'); obj.onclick=function(){fucntionname();}; 这种方法所有浏览器都支持 6:建立单选钮 IE以外的浏览器 var rdo = document.createElement('input'); rdo.setAttribute('type','radio'); rdo.setAttribute('name','radiobtn'); rdo.setAttribute('value','checked'); IE: var rdo =document.createElement("<input type='radio' name='radiobtn' value='checked'>"); 解决办法: 这一点区别和前面的都不一样。这次完全不同,所以找不到共同的办法来解决,那么只有IF-ELSE了 万幸的是,IE可以识别出document的uniqueID属性,别的浏览器都不可以识别出这一属性。问题解决。 0:共同的一些技巧 在动态建立INPUT型输入元素时,一般是先加入,在设置TYPE。这就有可能出错 好习惯:var btn = document.createElement('input'); btn.setAttribut('type','button'); document.getElementById('formId').appendChild(btn); ====================================================================================== |
|
返回顶楼 | |
发表时间:2011-03-01
IBM Developerworks上的文章。 转载也不表明出处。。
|
|
返回顶楼 | |
发表时间:2011-03-31
貌似在哪儿看到过楼主发的,好像是在IBM Developerworks上哦
|
|
返回顶楼 | |
浏览 7278 次