技术实现对windows.alert()的重写
时间: 2023-08-12 19:13:55 浏览: 47
对于重写 `window.alert()` 方法有两种常见的方式:
1. 重新定义 `window.alert()` 方法
```javascript
window.alert = function(message) {
// 自定义逻辑
console.log(message);
// 显示原始 alert 消息框
// alert(message);
};
```
这种方法可以直接覆盖原始的 `window.alert()` 方法,但是可能会影响到其他依赖原始 `window.alert()` 方法的代码。
2. 创建一个新的方法并使用 `window.addEventListener()` 方法监听 `alert` 事件
```javascript
window.addEventListener("alert", function(event) {
// 自定义逻辑
console.log(event.detail);
// 阻止原始 alert 消息框弹出
event.preventDefault();
});
function myAlert(message) {
// 触发 alert 事件
window.dispatchEvent(new CustomEvent("alert", { detail: message }));
}
```
这种方法不会覆盖原始的 `window.alert()` 方法,而是创建一个新的方法 `myAlert()` 来触发自定义的 `alert` 事件。但是需要注意的是,使用这种方法无法直接弹出原始的 `alert` 消息框。