*解决:在firefox中获得其父窗口的“引用”,再找到要更新值的组件,设置一下值即可。表示方法如下:
假如在父窗口有一个form的标单,标单中有id=page这个text。那么在弹出的窗口中就可以这样对他覆 值:parent.opener.document.form.page.value=newvalues;这样就可以完成在弹出窗口对父窗口覆值的需求 了。
window.event
IE中 可以使用window.event
FF中 event 只能在事件发生的现场使用,可以改写成 事件=函数(event); function somemethod(evt) {
evt = evt ? evt : (window.event ? window.event : null); alert(evt); }
例如:
4,event.x 与 event.y 问题 IE中,event 对象有 x, y 属性
FF中,可用event.clientX ,event.clientY替代(IE也有该属性) 也可用:mX = event.x ? event.x : event.pageX; 5,操作frame
IE中 可以用window.FrameName取得该frame,FF中不行
FF中 可以用window.top.document.getElementById(”frameId”)来访问frame
注:IE和FF都可以通过window.top.document.getElementById(”Frame”).src = ’
somefile.htm’来切换frame的 内容,也都可以通过window.top.frameName.location = ’somefile.htm’来切换frame的内容 6,调用showModalDialog
IE中可以用showModalDialog一个子窗口,并获得返回值. FF中没有showModalDialog,但可以用window.open来实现. 例如:
在Main.cfm文件中有如下代码: function ShowItemList(Obj){ if (document.all){//IE
var ReturnValue=window.showModalDialog(”ItemList.cfm?Id=341 〃,”self”,”dialogwidth:500px;status:false”); if (typeOf(ReturnValue)!=’undefined’){ Obj.value=ReturnValue; } } else{
var subwin=window.open(Item.cfm?id=341,’newWin’,’modal=yes,width=500px’); } }
function ReturnValue(ReturnValue){
Obj=document.getElementById(’elementname’); Obj.value=ReturnValue; }
如果需要得到返回值.需要用到window.open的参数modal=yes,而且必须在子窗口中向母窗口传值(window.opener).
例如在subwin.cfm中加入以下代码: function ReturnThisValue(){
window.opener.ReturnValue(document.getElementById(’SelectedItem’).value); }
IE和FIREFOX在解析CSS方面的区别 对高度的解析
IE:将根据内容的高度变化,包括未定义高度的图片内容,即使定义了高度,当内容超过高度时,将使用实际高度
Firefox:没有定义高度时,如果内容中包括了图片内容,MF的高度解析是根据印刷标准,这样就会造成和实际内容高度不符合的情况;当定义了高度,但 是内容超过高度时,内容会超出定义的高度,但是区域使用的样式不会变化,造成样式错位。
结论:大家在可以确定内容高度的情况下最好定义高度,如果真的没有办法定义高度,最好不用使用边框样式,否则样式肯定会出现混乱!
img对象alt和title的解析
alt:当照片不存在或者load错误时的提示;
title:照片的tip说明。
在IE中如果没有定义title,alt也可以作为img的tip使用,但是在MF中,两者完全按照标准中的定义使用
结论:大家在定义img对象时,最后将alt和title对象都写全,保证在各种浏览器中都能正常使用
其他的细节差别
当你在写css的时候,特别是用float: left(或right)排列一窜图片时,会发现在firefox里面正常而IE里面有问题。无论你用margin:0,还是border: 0来约束,都无济于事。
其实这里还有另外一个问题,就是IE对于空格的处理,firefox是忽略的而IE对于块与块之间的空格是处理的。也就是说一个div结束后要紧接着一个 div写,中间不要有回车或者空格。不然也许会有问题,比如3px的偏差,而且这个原因很难发现。
非常不走运的是我又碰到了这样的问题,多个img标签连着,然后定义的float: left,希望这些图片可以连起来。但是结果在firefox里面正常而IE里面显示的每个img都相隔了3px。我把标签之间的空格都删除都没有作用。
后来的解决方法是在img外面套li,并且对li定义margin: 0,这样就解决了IE和firefox的显示偏差。IE对于一些模型的解释会产生很多错误问题,只有多多尝试才能发现原因。
这只是一些简单的区别,在做布局和CSS设计时候可以综合考虑,但最为有效与简单的解决兼容问题还是用TABLE表格,表格在兼容性方面有着不错的表现.
nodeName 和 tagName 问题 (1)现有问题:
在MF中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中, nodeName 的使用好象
有问题(具体情况没有测试,但我的IE已经死了好几次)。 (2)解决方法:
使用 tagName,但应检测其是否为空。
相关推荐: