JavaScript

ブラウザ間のメソッドやプロパティの違いを三項演算子を使って吸収する

More than 3 years have passed since last update.

leafletのサンプルコードを読んでて知った方法。

ブラウザによってinnerTextだったりtextContentだったりを使い分けないといけない時に三項演算子を使ってプロパティやメソッドの違いを吸収する

var textarea = document.querySelector("textarea");
textarea["innerText" in textarea ? "innerText" : "textContent" ] = "text";

input要素のoninputとonchangeの違いなんかもこれで行けるらしい。

var input = document.querySelector("input");
input['oninput' in input ? 'oninput' : 'onchange'] = function(){
    console.log(this.value);
};