项目中使用elementUI(v2.15.1)的Notification,改动样式后作为浮窗,发现esc按键会将Notification关闭,需要取消esc的按键监听。
查看element-ui/lib/notification.js发现组件mounted中有添加keydown事件监听
mounted: function mounted() {
var _this2 = this;
if (this.duration > 0) {
this.timer = setTimeout(function () {
if (!_this2.closed) {
_this2.close();
}
}, this.duration);
}
document.addEventListener('keydown', this.keydown);
},
beforeDestroy: function beforeDestroy() {
document.removeEventListener('keydown', this.keydown);
}
参照beforeDestroy中的解绑,在notify创建后直接取消keydown监听,之后按下esc键对应Notification不再关闭。
let notify = this.$notify({
//notify具体配置
});
//直接解绑按键监听事件
document.removeEventListener("keydown", notify.keydown);
希望之后的版本有类似MessageBox的closeOnPressEscape配置。