oninput,onpropertychange,onchange的用法
对于获取触发事宜的对象,w3c和IE也有不合的做法:
- event.target;//w3c
- event.srcElement;//IE
我们可以应用三目运算符来兼容他们:
- obj = event.srcElement ? event.srcElement : event.target;
innerText的问题
innerText在IE中能正常工作,然则innerText在FireFox中却不可。
- <p id="element"></p>
- <script type="text/javascript">
- if(navigator.appName.indexOf("Explorer") >-1){
- document.getElementById('element').innerText = "my text";
- } else{
- document.getElementById('element').textContent = "my text";
- }
- </script>
来源地址:http://fmbip.com/litmus/
跨浏览器获取和设置innerText
- //跨浏览器获取innerText
- function getInnerText(element){
- return (typeof element.textContent == 'string') ? element.textContent : element.innerText;
- }
- //跨浏览器设置innerText
- function setInnerText(element,text){
- if(typeof element.textContent == 'string'){
- element.textContent = text;
- }else{
- element.innerText = text;
- }
- }
onchange触发事宜必须知足两个前提:
a)当前对象属性改变,并且是由键盘或鼠标事宜激发的(脚本触发无效)
b)当前对象掉去核心(onblur);
onpropertychange的话,只要当前对象属性产生改变,都邑触发事宜,然则它是IE专属的;
oninput是onpropertychange的非IE浏览器版本,支撑firefox和opera等浏览器,但有一点不合,它绑定于对象时,并非该对象所有属性改变都能触发事宜,它只在对象value值产生改变时奏效。
- <script type="text/javascript">
- if(window.XMLHttpRequest){
- xhr = new XMLHttpRequest();//非IE
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 这周工作太忙,本来想更把 Attention tranlsation 写出来,但一向抽不出时光,等后面有时光再来写。我们这>>>详细阅读
本文标题:JavaScript操作DOM的那些坑
地址:http://www.17bianji.com/lsqh/36299.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示