IE和FF在对js适用的不一样(梳理)及处理方式

日期:2021-03-09 类型:科技新闻 

关键词:在线抠图,稿定抠图,在线抠图透明图片,可以抠图的软件,凡科制图

1.window.event
IE:有window.event目标
FF:沒有window.event目标,能够根据涵数的主要参数传送event目标。如onclick=clickHandler(event)
处理方法:var event = event || window.event;

2. 电脑鼠标当今座标
IE:event.x和event.y
FF:event.pageX和event.pageY
处理方法:选用通用性特性:event.clientX和event.clientY特性;

3. 电脑鼠标座标再加翻转条滚过的间距
IE:event.offsetX和event.offsetY
FF:event.layerX和event.layerY
处理方法:

拷贝编码
编码以下:

<script type="text/javascript">
function mouseDownHandler(event) {
var event = event || window.event;
//var event = event ? event : window.event;
var x = event.offsetX || event.layerX;
var y = event.offsetX || event.layerY;
}
</script>

3. event.srcElement
IE:event目标有srcElement特性,可是沒有target特性;
FF:event目标有target特性,但沒有srcElement特性
处理方法:应用obj = event.srcElement ? event.srcElement : event.target;来替代IE下的event.srcElement或FF下的event.target(留意event的适配性);

4.event.toElement
IE:event目标有toElement特性,但沒有relatedTarget特性
FF:event目标沒有有toElement特性,但有relatedTarget特性
处理方法:var target = e.relatedTarget || e.toElement;

5. 标识的x和y的座标部位,style.posLeft 和 style.posTop
IE:有
FF:沒有
处理方法:用通用性特性obj.offsetLeft 和 obj.offsetTop

6. 窗体的高宽比和宽度
IE:document.body.offsetWidth 和 document.body.offsetHeight。留意,此时网页页面1定要有body标识。
FF:window.innerWidth 和 window.innerHeight,和 document.documentElement.clientWidth 和 document.documentElement.clientHeight。
处理方法:通用性特性 document.body.clientWidth 和 document.body.clientHeight;

7. 加上恶性事件
IE:element.attachEvent('onclick',function)
FF:element.addEventListener('click',function,true)
处理方法:element.onclick = function.尽管都可以以应用click恶性事件。但onclick和上面两种方式实际效果是不1样的。onclick仅有实行1个全过程,而attachEvent 和 addEventListener实行的是1个全过程目录,也便是好几个全过程。
如:element.attachEvent('onclick',func1); element.attachEvent("onclick", func2)这样func1和func2都会被实行。

8. 标识的自定特性
IE:假如给标识div1界定了1个特性value,能够div1.value 和 div1["value"]获得该值
FF:不可以用div1.value 和div1["value"]
处理方法:div1.getAttribute('value')

9. document.form.item
IE:现有难题,document.formName.item("itemName") 这样的句子,不可以在 FF 下运作
FF:不适用
处理方法: document.formName.elements["elementName"]

10. 结合/数字能量数组类目标难题
IE:有很多结合类目标取用时用()
FF:不可以这样取用
处理方法:改用[]做为下标运算。
如:document.forms("formName") 改成 document.forms["formName"]。document.getElementsByName("inputName")(1) 改成 document.getElementsByName("inputName")[1]

11. HTML目标的id做为目标名的难题
IE:HTML目标的id能够做为document的属下自变量名立即应用
FF:必须用getElementById()方式
处理方法:用getElementById('idName')替代idName做为目标自变量应用

12. 用idName标识符串获得目标的难题
IE:运用eval(idName)能够获得 id 为 idName 的HTML目标。
FF:不适用
处理方法:getElementById(idName) 替代 eval(idName)

13. 自变量名与某 HTML 目标 id 同样的难题
IE:由于HTML目标id 在IE中立即启用,因此自变量名不可以和id同样
FF:可使用自变量名和id同样
处理方法,申明自变量时1律再加 var ,以免歧义(最好是id和自变量名不必同样)。

14. document.getElementsByName() 和 document.all[name]
IE:getElementsByName()、document.all[name] 均不可以用来获得 div 元素
FF:能够适配document.all, 但会转化成1条警示。
处理方法:能够用getElementById() 或 getElementByTagName()来替代

15. input.type特性难题
IE:input.type特性为写保护
FF:input.type特性为读写能力

16. window.location.href
IE:(FF2.0下列),可使用window.location 或 window.location.href ; FF 1.5下只能应用window.location
处理方法:应用window.location 来替代 window.location.href

17. 模态和非模态对话框难题
IE:能够根据 showModalDialog 和 showModelessDialog 开启模态和非模态对话框
FF:不适用
处理方法:立即应用window.open(pageURL, name, parameters) 方法开启新对话框,假如必须将子对话框中的主要参数传送回父对话框,能够在子对话框中应用window.opener来浏览父对话框。
如:var parWin = window.opener; parWin.document.getElementById('title').value = 'My Title';

18. body
IE:body务必在body标识被访问器彻底读入后才存在
FF:body在body标识沒有被访问器彻底读入以前就存在

19. 恶性事件授权委托方式
IE:document.body.onload = init;
FF:document.body.onload = init();
处理方法:统1应用 document.body.onload = new Function('init()'); 或 docuement.body.onload = function(){/* 这里是编码 */}

20. 父元素的差别
IE:obj.parentElement;
FF :obj.parentNode
处理方法:由于FF与IE都适用DOM,因此能够都应用obj.parentNode

22.innerText在IE中能一切正常工作中,可是innerText在FF中却不好. 需用textContent

23. FF中设定HTML标识的style时,全部部位性和字体样式规格的值务必后跟px。这个IE也是适用的

24. 父连接点、子连接点和删掉连接点
IE:parentElement、parement.children,element.romoveNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。
上一篇:自适应网站 返回下一篇:没有了