Подтвердить что ты не робот

Evt.preventDefault не работает в IE и Edge при перемещении мыши, даже пытался evt.returnValue = false; но не работает, чтобы остановить распространение

У меня есть большой div. При попытке изменить размер страницы вся страница выбирается синим цветом, хотя я не собираюсь в iE и Edge. Я попробовал много решений, показанных в Интернете, но ничего не получилось. Ниже мой код. Я не могу предотвратить действие по умолчанию событием при перемещении мыши. Я слушаю ownerDocument для события перемещения мыши.

Ниже код работает как ожидается в chrome и mozilla

Я видел в консоли, проверяя переменную evt, до того, как распространение прерываний предотвратит по умолчанию значение true, после того, как прекращение распространения предотвратит по умолчанию значение false. То же, что и поведение google chromes, но все равно не получается, почему выбрана целая страница.

Изменить код:

 <div className="resizer"
      tabIndex={-1}
      onMouseDown={this.MouseDown}
 />


private MouseDown(evt: any) {
        this.viewState.resizing = true;
        const {ownerDocument} = ReactDOM.findDOMNode(this);
        ownerDocument.addEventListener('mousemove', this.MouseMove);
        ownerDocument.addEventListener('mouseup', this.MouseUp);

        this.setState(this.viewState);
    }

private MouseMove(evt) {
        this.viewState.width = width;
        this.viewState.height = height;


         if (evt.preventDefault) {
            evt.returnValue = false;
            evt.preventDefault();
        }
        else {
            evt.cancelBubble = true;
        }


        this.setState(this.viewState);
    }
4b9b3361

Ответ 1

Вместо создания evt.preventDefault(); в перемещении мыши сделайте это в самом mousedown/Click событии

private MouseDown(evt: any) {
        this.viewState.resizing = true;
        const {ownerDocument} = ReactDOM.findDOMNode(this);
        evt.preventDefault();
        evt.stopPropagation();
        ownerDocument.addEventListener('mousemove', this.MouseMove);
        ownerDocument.addEventListener('mouseup', this.MouseUp);

        this.setState(this.viewState);
    }

Ответ 2

Если проблема заключается в том, что страница выбрана с синим цветом, существует еще один способ предотвращения выбора.

Попробуйте следующее:

<body onselectstart="return false">

Ответ 3

Попробуйте этот шаблон:

if (event.preventDefault){ 
  event.preventDefault();
} 
else { 
  event.returnValue = false; 
}