ホームページ > ウェブフロントエンド > jsチュートリアル > よく使われるネイティブJS互換記述法まとめ_JavaScriptスキル

よく使われるネイティブJS互換記述法まとめ_JavaScriptスキル

WBOY
リリース: 2016-05-16 15:03:33
オリジナル
1936 人が閲覧しました

簡単なことをまとめてみましょう

備考: 次のメソッドはすべて EventUtil オブジェクトにラップされており、メソッドはオブジェクト リテラルを使用して直接定義されます。 。 。

①イベントメソッドを追加

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;
 }
}
ログイン後にコピー

②先ほど追加したイベントメソッドを削除します

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;
  }
 }
ログイン後にコピー

③イベントとイベントオブジェクトのターゲットを取得する

//获取事件对象的兼容性写法
 getEvent: function(event){
  return event ? event : window.event;
 },
 //获取事件对象目标的兼容性写法
 getTarget: function(event){
  return event.target || event.srcElement;
 }
ログイン後にコピー

④ブラウザのデフォルトイベントの互換性を防ぐ方法

preventDefault: function(event){
  if (event.preventDefault){
   event.preventDefault();
  } else {
   event.returnValue = false;
  }
 }
ログイン後にコピー

⑤イベントバブリングを防ぐ互換記述方法

stopPropagation: function(event){
  if (event.stopPropagation){
   event.stopPropagation();
  } else {
   event.cancelBubble = true;
  }
 }
ログイン後にコピー

⑥マウスオーバーイベントとマウスアウトイベントには、関連要素を取得するメソッドのみが含まれます

//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;
 }
}
ログイン後にコピー

⑦マウスホイール判定

マウスダウンおよびマウスアップイベントの場合、イベントオブジェクトにボタン属性があります。
押された、または放されたボタンを表します。 DOM ボタン属性には次の 3 つの値があります: 0 はメイン マウス ボタンを表し、1 は中マウス ボタンを表します
ボタン (マウス ホイール ボタン)、2 はマウスの 2 番目のボタンを表します。通常のセットアップでは、マウスの主ボタンはマウスの左ボタンで、マウスの副ボタンは
です。 ボタンはマウスの右ボタンです。
IE8 以前のバージョンでも button 属性が提供されていますが、この属性の値は DOM の button 属性とは大きく異なります。
 0: ボタンが押されていないことを示します。
 1: マウスの主ボタンが押されていることを示します。
 2: マウスボタンが押されたことを示します。
 3: マウスの主ボタンと副ボタンが同時に押されていることを示します。
 4: マウスの中ボタンが押されていることを示します。
 5: マウスのメイン ボタンとマウスの中ボタンが同時に押されていることを示します。
 6: マウスの 2 番目のボタンとマウスの中ボタンが同時に押されていることを示します。
 7: 3 つのマウス ボタンが同時に押されたことを示します。

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;
  }
 }
}
ログイン後にコピー

⑧マウスホイールの増分値(デルタ)の取得方法

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表示向下滚
 }
}
ログイン後にコピー

⑨クロスブラウザー方式で文字エンコーディングを取得する

getCharCode: function(event){
 if (typeof event.charCode == "number"){
  return event.charCode;
 } else {
  return event.keyCode;
 }
}
ログイン後にコピー

⑩ クリップボード内のデータにアクセスします

getClipboardText: function(event){
  var clipboardData = (event.clipboardData || window.clipboardData);
  return clipboardData.getData("text");
 }
ログイン後にコピー

11. データをクリップボードにセットします

setClipboardText: function(event, value){
  if (event.clipboardData){
   return event.clipboardData.setData("text/plain", value);
  } else if (window.clipboardData){
   return window.clipboardData.setData("text", value);
  }
 }
ログイン後にコピー

カプセル化して直接使用します。

完全なファイルと、より基本的な CSS および LESS リセット スタイルについては、次を参照してください: https://github.com/LuckyWinty/resetFile

以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート