Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung häufig verwendeter nativer JS-Kompatibilitätsschreibmethoden_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:03:33
Original
1878 Leute haben es durchsucht

Lassen Sie uns einige einfache Dinge zusammenfassen

Bemerkungen: Die folgenden Methoden sind alle in ein EventUtil-Objekt eingeschlossen und die Methode wird direkt mithilfe von Objektliteralen definiert. . .

①Ereignismethode hinzufügen

addHandler:function(element,type,handler){
 if(element.addEventListener){//检测是否为DOM2级方法
  element.addEventListener(type, handler, false);
 }else if (element.attachEvent){//检测是否为IE级方法
  element.attachEvent("on" + type, handler);
 } else {//检测是否为DOM0级方法
  element["on" + type] = handler;
 }
}
Nach dem Login kopieren

②Entfernen Sie die zuvor hinzugefügte Ereignismethode

removeHandler:function(element, type, handler){
  if (element.removeEventListener){
   element.removeEventListener(type, handler, false);
  } else if (element.detachEvent){
   element.detachEvent("on" + type, handler);
  } else {
   element["on" + type] = null;
  }
 }
Nach dem Login kopieren

③Ereignisse und Ereignisobjektziele abrufen

//获取事件对象的兼容性写法
 getEvent: function(event){
  return event ? event : window.event;
 },
 //获取事件对象目标的兼容性写法
 getTarget: function(event){
  return event.target || event.srcElement;
 }
Nach dem Login kopieren

④So verhindern Sie die Kompatibilität von Browser-Standardereignissen

preventDefault: function(event){
  if (event.preventDefault){
   event.preventDefault();
  } else {
   event.returnValue = false;
  }
 }
Nach dem Login kopieren

⑤ Kompatibilitätsschreibmethode, um das Sprudeln von Ereignissen zu verhindern

stopPropagation: function(event){
  if (event.stopPropagation){
   event.stopPropagation();
  } else {
   event.cancelBubble = true;
  }
 }
Nach dem Login kopieren

⑥Die Mouseover- und Mouseout-Ereignisse umfassen nur Methoden zum Abrufen verwandter Elemente

//mouseover和mouseout 事件才包含的获取相关元素的方法
getRelatedTarget: function(event){
 if (event.relatedTarget){
  return event.relatedTarget;
 } else if (event.toElement){
  return event.toElement;
 } else if (event.fromElement){
  return event.fromElement;
 } else {
  return null;
 }
}
Nach dem Login kopieren

⑦Mausrad-Beurteilung

Für Mousedown- und Mouseup-Ereignisse gibt es ein Schaltflächenattribut im Ereignisobjekt,
Stellt eine Taste dar, die gedrückt oder losgelassen wird. Das DOM-Schaltflächenattribut kann die folgenden drei Werte haben: 0 steht für die Hauptmaustaste, 1 steht für die mittlere Maus
(Mausradtaste), 2 stellt die sekundäre Maustaste dar. In einem normalen Setup ist die primäre Maustaste die linke Maustaste und die sekundäre Maustaste ist
Die Schaltfläche ist die rechte Maustaste.
IE8 und frühere Versionen bieten ebenfalls das Button-Attribut, der Wert dieses Attributs unterscheidet sich jedoch stark vom Button-Attribut des DOM.
 0: Zeigt an, dass die Taste nicht gedrückt ist.
 1: Zeigt an, dass die primäre Maustaste gedrückt ist.
 2: Zeigt an, dass die Maustaste gedrückt wurde.
 3: Zeigt an, dass die primäre und sekundäre Maustaste gleichzeitig gedrückt werden.
 4: Zeigt an, dass die mittlere Maustaste gedrückt ist.
 5: Zeigt an, dass die Hauptmaustaste und die mittlere Maustaste gleichzeitig gedrückt werden.
 6: Zeigt an, dass die zweite Maustaste und die mittlere Maustaste gleichzeitig gedrückt werden.
 7: Zeigt an, dass drei Maustasten gleichzeitig gedrückt wurden.

getButton: function(event){
 if (document.implementation.hasFeature("MouseEvents", "2.0")){
  return event.button;
 } else {
  switch(event.button){
   case 0:
   case 1:
   case 3:
   case 5:
   case 7:
   return 0;
   case 2:
   case 6:
   return 2;
   case 4:
   return 1;
  }
 }
}
Nach dem Login kopieren

⑧So erhalten Sie den Inkrementalwert (Delta) des Mausrads

getWheelDelta: function(event){
 if (event.wheelDelta){
  return (client.engine.opera && client.engine.opera < 9.5 &#63;
   -event.wheelDelta : event.wheelDelta);
 } else {
  return -event.detail * 40;//firefox中的值为+3表示向上滚,-3表示向下滚
 }
}
Nach dem Login kopieren

⑨Erhalten Sie die Zeichenkodierung browserübergreifend

getCharCode: function(event){
 if (typeof event.charCode == "number"){
  return event.charCode;
 } else {
  return event.keyCode;
 }
}
Nach dem Login kopieren

⑩ Zugriffsdaten in der Zwischenablage

getClipboardText: function(event){
  var clipboardData = (event.clipboardData || window.clipboardData);
  return clipboardData.getData("text");
 }
Nach dem Login kopieren

11. Legen Sie die Daten in der Zwischenablage fest

setClipboardText: function(event, value){
  if (event.clipboardData){
   return event.clipboardData.setData("text/plain", value);
  } else if (window.clipboardData){
   return window.clipboardData.setData("text", value);
  }
 }
Nach dem Login kopieren

Verkapseln Sie es und verwenden Sie es dann direkt.

Vollständige Dateien und grundlegendere CSS- und LESS-Reset-Stile finden Sie unter: https://github.com/LuckyWinty/resetFile

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!