JS 重写 confirm
时间: 2023-08-26 10:24:42 浏览: 53
在 JavaScript 中,可以通过重写 `window.confirm` 方法来自定义 `confirm` 对话框的行为。代码示例:
```
window.confirm = function(message) {
// 自定义的确认框 UI 代码
// ...
// 返回 true 或 false 表示用户的选择
};
```
在自定义的确认框 UI 中,你可以使用 HTML、CSS 和 JavaScript 来实现任意样式和交互。然后根据用户的选择,返回 `true` 或 `false` 表示用户确认或取消。这样,所有调用 `window.confirm` 的代码都会使用你自定义的确认框。
需要注意的是,虽然重写 `window.confirm` 可以实现自定义的确认框,但是这并不是推荐的做法,因为这会影响到所有依赖原生 `confirm` 对话框的代码。如果你只想在特定的页面或应用中使用自定义的确认框,建议使用其他的方式来实现。
相关问题
js confirm弹出框重写
以下是重写js confirm弹出框的示例代码:
```javascript
function zdconfirm(title, message, callback) {
var confirmBox = document.createElement('div');
confirmBox.className = 'nbaMask';
confirmBox.innerHTML = '<div class="confirmBox">' +
'<div class="confirmTitle">' + title + '</div>' +
'<div class="confirmMessage">' + message + '</div>' +
'<div class="confirmButtons">' +
'<button class="confirmButton" onclick="confirmAction(true)">确定</button>' +
'<button class="confirmButton" onclick="confirmAction(false)">取消</button>' +
'</div>' +
'</div>';
document.body.appendChild(confirmBox);
function confirmAction(result) {
document.body.removeChild(confirmBox);
callback(result);
}
}
```
使用示例:
```javascript
zdconfirm('系统确认框', '你确认提交该条数据吗', function(result) {
if (result) {
// 点击确定后执行的内容
window.location.href = "http://www.baidu.com";
}
});
```
去掉网页中alert和confirm弹出框自带的网址
你可以使用以下 JavaScript 代码,覆盖或重写 `window.alert()` 和 `window.confirm()` 方法,以去掉弹出框中自带的网址:
```javascript
window.alert = function(msg) {
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
var win = iframe.contentWindow;
win.alert(msg);
document.body.removeChild(iframe);
}
window.confirm = function(msg) {
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
var win = iframe.contentWindow;
var result = win.confirm(msg);
document.body.removeChild(iframe);
return result;
}
```
这段代码会创建一个隐藏的 `iframe` 元素,并在其中动态创建一个新的 `window` 对象。然后,通过这个新的 `window` 对象来调用真正的 `alert()` 或 `confirm()` 方法,这样就能去掉弹出框中自带的网址。最后,记得将这个 `iframe` 元素从页面中移除,以免影响页面的布局和性能。