如何在IE上强制window.navigator.pointerEnabled设置为false?

 window.navigator.pointerEnabled = false;


不起作用

我无法触摸该代码,但无论如何都希望在其他情况下使用:

if (window.navigator.pointerEnabled) {
      tapEventListener('pointerdown');
      tapEventListener('pointerup');
      tapEventListener('pointcancel');
      tapTouchMoveListener = 'pointermove';
} else if (window.navigator.msPointerEnabled) {
      tapEventListener('MSPointerDown');
      tapEventListener('MSPointerUp');
      tapEventListener('MSPointerCancel');
      tapTouchMoveListener = 'MSPointerMove';
} else {
      tapEventListener('touchstart');
      tapEventListener('touchend');
      tapEventListener('touchcancel');
}

最佳答案

这是我设法做到的方式:



Object.defineProperty(navigator.__proto__, 'pointerEnabled', { value: false });

console.log(window.navigator.pointerEnabled);





navigator.pointerEnabled = false不起作用的原因是该属性是只读的。如果您在控制台中输入,则可以看到它:

Object.getOwnPropertyDescriptor(navigator.__proto__, 'pointerEnabled')


并注意set成员是undefined

09-28 07:52