您好,欢迎访问一九零五行业门户网

JAVASCRIPT IE 与 FF中兼容问题小结_javascript技巧

png透明 alphaimageloader
filter:progid:dximagetransform.microsoft.alphaimageloader(enabled=benabled,sizingmethod=ssize,src=surl)
enabled:可选项。布尔值(boolean)。设置或检索滤镜是否激活。true:默认值。滤镜激活。false:滤镜被禁止。
sizingmethod:可选项。字符串(string)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。crop:剪切图片以适应对象尺寸。image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。scale:缩放图片以适应对象的尺寸边界。
src:必选项。字符串(string)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。
firefox不能对innertext支持
firefox支持innerhtml但却不支持innertext,它支持textcontent来实现innertext,不过默认把多余的空格也保留了。如果不用textcontent,如果字符串里面不包含html代码也可以用innerhtml代替。
禁止选取网页内容
在ie中一般用js:obj.onselectstart=function(){return false;}
而firefox用css:-moz-user-select:none
滤镜的支持(例:透明滤镜)
ie:filter:alpha(opacity=10);
firefox:-moz-opacity:.10;
捕获事件
ie:obj.setcapture() 、obj.releasecapture()
firefox:document.addeventlistener(”mousemove”,mousemovefunction,true);
document.removeeventlistener(”mousemove”,mousemovefunction,true);
获取鼠标位置
ie:event.clientx、event.clienty
firefox:需要事件函数传递事件对象
obj.onmousemove=function(ev){
x= ev.pagex;y=ev.pagey;
}
div等元素的边界问题
比如:设置一个div的css::{width:100px;height:100px;border:#000000 1px solid;}
ie中:div的宽度(包括边框宽度):100px,div的高度(包括边框宽度):100px;
而firefox:div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;
判断浏览器类型
var isie=document.all ? true : false;
我写了一个变量,如果支持document.all语法那么isie=true,否则isie=false
在不同浏览器下的css处理
一般可以用!important来优先使用css语句(仅firefox支持)
比如:{border-width:0px!important;border-width:1px;}
在firefox下这个元素是没有边框的,在ie下边框宽度是1px
document.formname.item(”itemname”) 问题
问题说明:ie下,可以使用 document.formname.item(”itemname”) 或 document.formname.elements [elementname];firefox下,只能使用document.formname.elements[elementname]。
解决方法:统一使用document.formname.elements[elementname]。
集合类对象问题
问题说明:ie下,可以使用()或[]获取集合类对象;firefox下,只能使用[]获取集合类对象。
解决方法:统一使用 [] 获取集合类对象。
自定义属性问题
问题说明:ie下,可以使用获取常规属性的方法来获取自定义属性,也可以使用 getattribute() 获取自定义属性;firefox下,只能使用 getattribute() 获取自定义属性。
解决方法:统一通过 getattribute() 获取自定义属性。
eval(”idname”)问题
问题说明:ie下,可以使用 eval(”idname”) 或 getelementbyid(”idname”) 来取得 id 为 idname 的html对象;firefox下,只能使用 getelementbyid(”idname”) 来取得 id 为 idname 的html对象。
解决方法:统一用 getelementbyid(”idname”) 来取得 id 为 idname 的html对象。
变量名与某html对象id相同的问题
问题说明:ie下,html对象的id可以作为 document 的下属对象变量名直接使用,firefox下则不能;firefox下,可以使用与html对象id相同的变量名,ie下则不能。
解决方法:使用 document.getelementbyid(”idname”) 代替 document.idname。最好不要取html对象id相同的变量名,以减少错误;在声明变量时,一律加上var关键字,以避免歧义。
const问题
问题说明:firefox下,可以使用const关键字或var关键字来定义常量;ie下,只能使用var关键字来定义常量。
解决方法:统一使用var关键字来定义常量。
input.type属性问题
问题说明:ie下 input.type 属性为只读;但是firefox下 input.type 属性为读写。
解决办法:不修改 input.type 属性。如果必须要修改,可以先隐藏原来的input,然后在同样的位置再插入一个新的input元素。
window.event问题
问题说明:window.event 只能在ie下运行,而不能在firefox下运行,这是因为firefox的event只能在事件发生的现场使用。
解决方法:在事件发生的函数上加上event参数,在函数体内(假设形参为evt)使用 var myevent = evt?evt:(window.event?window.event:null)
示例:
其它类似信息

推荐信息