有没有一种方法可以防止整个角度2/4/5 Web应用程序中的退格导航?

Suh*_*i88 1 navigation angular angular5

我需要在整个应用程序内限制退格导航。是否有解决方案,例如可以在整个应用程序的单个图块下执行的操作?

Vij*_*ade 6

我正在使用Angular 6应用程序,并且在Internet Explorer(IE)上遇到了相同的问题。

我在Internet上搜索解决方案,然后在JQuery中找到了一个解决方案。我设法以某种方式将其转换为Angular。

此代码段解决了该问题。

@HostListener('document:keydown', ['$event'])
  onKeyDown(evt: KeyboardEvent) {
    if (
        evt.keyCode === 8 || evt.which === 8
    ) {
      let doPrevent = true;
      const types =['text','password','file','search','email','number','date','color','datetime','datetime-local','month','range','search','tel','time','url','week'];
      const target = (<HTMLInputElement>evt.target);

  const disabled = target.disabled || (<HTMLInputElement>event.target).readOnly;
  if (!disabled) {
    if (target.isContentEditable) {
      doPrevent = false;
    } else if (target.nodeName === 'INPUT') {
      let type = target.type;
      if (type) {
        type = type.toLowerCase();
      }
      if (types.indexOf(type) > -1) {
        doPrevent = false;
      }
    } else if (target.nodeName === 'TEXTAREA') {
      doPrevent = false;
    }
  }
  if (doPrevent) {
    evt.preventDefault();
    return false;
  }
  }
  }
Run Code Online (Sandbox Code Playgroud)