【JavaScript】「Passive Event Listener」が使用できるか判断する値を取得する関数

2018年11月23日

スクロールイベントを登録する際に、「Passive Event Listener」が使用できるかどうかによりaddEventListener関数の第3引数を変更する必要があったので作成した。

コード

function canUsePassive() {
    let canUsePassive = false;
    
    const PROPERTY  = { get: function() { canUsePassive = true; } };
    const OPTIONS   = Object.defineProperty( {}, 'passive', PROPERTY );

    window.addEventListener( 'dummy', null, OPTIONS );

    return canUsePassive;
}

使用例

const OPTION = canUsePassive() ? { passive: true } : false;
window.addEventListener( 'scroll', function() { /* 処理 */ }, OPTION );

参考ページ