document-->body-->div-->div-->body-->document-->window比較特殊的,在DOM事件模型中,文本節(jié)點也會觸發(fā)事件,而IE中是不會的。wind" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

javascript 跨瀏覽器的一些小技巧

系統(tǒng) 4363 0

??? 用網(wǎng)頁調(diào)整格式實在是太復(fù)雜了,湊合看看吧。。。。。

  1. ? 事件處理分為兩種,一種為冒泡型事件,另一種為捕獲型事件
    ?
    冒泡型事件 :是從特定目標(biāo)到最不特定的目標(biāo)
    ?
    捕獲型事件 :是從最不特定的對象開始觸發(fā),一直到最精確的對象。
    ?
    ?DOM
    標(biāo)準(zhǔn)同時支持兩種事件,并且捕獲型事件先發(fā)生。
    ?window-->document-->body-->div-->div-->body-->document-->window
    ?
    ?
    比較特殊的,在 DOM 事件模型中,文本節(jié)點也會觸發(fā)事件,而 IE 中是不會的。
    ?window-->document-->body-->div-->text-->text-->div-->body-->document-->window
    ?
    ?
  2. IE DOM 在事件及事件處理中有很多不一樣的。
  • ? 對于加載監(jiān)聽和移除監(jiān)聽的語法
    ?
    IE 中使用
    ??[Object].attachEvent("name_of_event_handler", fnHandler);
    ??[Object].detachEvent("name_of_event_handler", fnHandler);
    ?
    兩個參數(shù):要分配的事件處理函數(shù)的名字 事件處理函數(shù)
    ??[Object].attachEvent("onclick", fnHandler);
    ??
    [Object].onclick = fnHandler; 的作用是一樣的。
    ??
    ?
    DOM 中使用
    ??[Obejct].addEventListener("name_of_event", fnHandler, bCapture);
    ??[Obejct].removeEventListener("name_of_event", fnHandler, bCapture);
    ?
    三個參數(shù): 1 :事件名稱。 2 :事件處理函數(shù)。 3 :用于冒泡階段( false )或者用于捕獲階段( true )。
    ??[Obejct].addEventListener("click", fnHandler, false);
    ??
    [Obejct].onclick = fnHandler; 的作用是一樣的。
    ??
    ?
  • 對于獲取目標(biāo)的方法
    ?
    IE
    ??var oTarget = oEvent.srcElement;
    ?
    DOM
    ??var oTarget = oEvent.target;
    ??
    ??
  • 對于獲取字符代碼

????在 IE

????? 如果按鍵代表一個字符(非 Shift 、 Ctrl 、 Alt 等),則 keyCode 將返回字符的代碼,即 Unicode 值。

DOM
?? ??? ??????
獲得字符代碼用 charCode?

var iCharCode = oEvent.charCode;
?? ??? ??????
獲得字符使用 ??

?var sChar = String.fromCharCode(oEvent.charCode);
?? ??????????
如果不確定按鍵是否包含字符,則使用 isChar 來判斷
???if(oEvent.isChar){
????var iCharCode = oEvent.charCode;
???}
?
?

  • 阻止事件的默認行為 ( 比如阻止鼠標(biāo)右鍵等 )
    ?
    IE
    ??oEvent.returnValue = false;
    ?
    DOM
    ??oEvent.preventDefault();
    ?
    ?
  • 停止事件冒泡
    ?
    IE
    ??oEvent.cancelBubble = true;
    ?
    DOM
    ??oEvent.stopPropagation();

    IE DOM 在事件及事件處理中有很多不一樣的。

IE Event 事件統(tǒng)一成 DOM 的形式,創(chuàng)建 formatEvent 方法。建立 EventUtil
?
?

    EventUtil.formatEvent = function (oEvent){
  if(isIE){
   oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
   oEvent.eventPhase = 2; //代表冒泡階段,IE僅支持冒泡階段
   oEvent.isChar = (oEvent.charCode > 0);
   oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
   oEvent.pageY = oEvent.clientY + document.body.scrollTop;
   oEvent.preventDefault = function (){
    this.returnvalue = false;
   }
   if(oEvent.type == "mouseout"){
    oEvent.relatedTarget = oEvent.toElement;
   }else if(oEvent.type == "mouseover"){
    oEvent.relatedTarget = oEvent.fromElement;
   }
   oEvent.stopPropagation = function (){
    this.cancelBubble = true;
   }
   oEvent.target = oEvent.srcElement;
   oEvent.time = (new Date).getTime();
  }
  return oEvent;
 }

  

?
?IE

DOM event 獲取方法也不大一樣。特別說明的是函數(shù)的 caller 屬性。每個函數(shù)都有 caller 屬性,指向調(diào)用它的方法的引用。即, funcA() 調(diào)用 funcB(),funcB.caller 就等于 funcA
?

    EventUtil.getEvent = function(){
  if(window.event){
   return this.formatEvent(window.event);
  }else{
   return EventUtil.getEvent.caller.arguments[0];//event對象總是事件處理函數(shù)的第一個參數(shù)。
  }
 }

  

?

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?

?

?

javascript 跨瀏覽器的一些小技巧


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色爱视频 | 精品在线免费观看视频 | 亚洲精品美女在线观看 | 美女视频黄视大全视频免费网址 | 亚洲最大综合网 | 精品久久一区二区三区 | 99久久99久久精品免费看子伦 | a毛片免费看 | 久久艹免费视频 | 久久久久国产精品免费 | 国产一级毛片国产 | 四虎成人免费网站在线 | 日韩欧美成人免费中文字幕 | 欧美成人三级视频 | 国产色网址 | 亚洲国产精品一区二区久久hs | 一级毛片免费高清视频 | 亚洲国产激情在线一区 | 久99久热| 四虎影院2019 | 久久久久女人精品毛片九一 | 91亚洲精品一区二区在线观看 | 国产三级在线精品男人的天堂 | 无遮挡一级毛片性视频不卡 | 天天做天天爱夜夜大爽完整 | 国产网红精品 | 日韩 欧美 亚洲 国产 | 亚洲夜色综合久久 | 欧美一级在线全免费 | jizzjizz女人中国 | 亚洲综合套图 | 91精品成人免费国产片 | 在线色资源| 九九视频这里只有精品99 | 久久久夜 | 青青福利视频 | 香蕉综合网 | 亚洲a在线视频 | 久草在线视频精品 | 天天干天天谢 | 伊人久久中文字幕 |