Javascript 如何取消document方法-addEventListener的关闭事件(';close';)

Javascript 如何取消document方法-addEventListener的关闭事件(';close';),javascript,angular,Javascript,Angular,我有mdl的下一个对话框: document.getElementById('dialog').addEventListener('close', function (event) { event.preventDefault() }); 所以我想取消这次活动。当我按下后退按钮时,我希望对话框不会关闭。此事件可以捕获关闭事件,但无法停止事件,因为cancelable属性将设置为false。您可以使用removeEventListener,但必须传递与使用addEvent

我有mdl的下一个对话框:

document.getElementById('dialog').addEventListener('close', function (event) {
         event.preventDefault()



});

所以我想取消这次活动。当我按下后退按钮时,我希望对话框不会关闭。此事件可以捕获关闭事件,但无法停止事件,因为cancelable属性将设置为false。

您可以使用
removeEventListener
,但必须传递与使用
addEventListener
时相同的事件处理程序

const closerHandler = function (event) {
  event.preventDefault();

}

document.getElementById('dialog').addEventListener('close',closerHandler); 
...    
document.getElementById('dialog').removeEventListener('close', closerHandler);
或者您可以使用rxjs
fromEvent

const source = fromEvent( document.getElementById('dialog'), 'close');
const subscribe = example.subscribe(val => console.log(val));
以后可以使用“取消订阅”方法

 subscribe.unsubscribe() 

您可以使用
removeEventListener
,但必须传递与使用
addEventListener时相同的事件处理程序

const closerHandler = function (event) {
  event.preventDefault();

}

document.getElementById('dialog').addEventListener('close',closerHandler); 
...    
document.getElementById('dialog').removeEventListener('close', closerHandler);
或者您可以使用rxjs
fromEvent

const source = fromEvent( document.getElementById('dialog'), 'close');
const subscribe = example.subscribe(val => console.log(val));
以后可以使用“取消订阅”方法

 subscribe.unsubscribe() 

如果您取消关闭事件,则您正在打开连接?然后将关闭更改为(打开)?看起来它会关闭并重新打开。请注意,没有办法停止websocket,在您的示例中,您只需侦听它。如果取消关闭事件,则您正在打开连接?然后更改为close to(open)?它看起来像是关闭并重新打开的。这是一个没有办法阻止websocket的方法,在你的例子中,你只是在听它。你需要创建一个演示或共享更多的代码,所以我可以帮助你创建一个演示或共享更多的代码,所以我可以帮助你