JS自定义alert与confirm
在JavaScript中,您可以通过创建自定义的对话框来模仿alert
和confirm
功能。以下是一个简单的自定义alert
函数的例子:
function customAlert(message) {
// 创建一个遮罩层遮挡页面其他部分
const overlay = document.createElement('div');
overlay.style.position = 'fixed';
overlay.style.top = 0;
overlay.style.left = 0;
overlay.style.right = 0;
overlay.style.bottom = 0;
overlay.style.background = 'rgba(0, 0, 0, 0.5)';
// 创建一个弹窗显示消息
const dialog = document.createElement('div');
dialog.style.position = 'absolute';
dialog.style.background = 'white';
dialog.style.padding = '20px';
dialog.style.margin = '50px auto';
dialog.style.width = '80%';
dialog.style.maxWidth = '400px';
dialog.innerHTML = message;
// 创建一个关闭按钮
const closeButton = document.createElement('button');
closeButton.innerHTML = '关闭';
closeButton.style.float = 'right';
closeButton.onclick = function() {
document.body.removeChild(overlay);
document.body.removeChild(dialog);
};
// 添加按钮到弹窗并打开
dialog.appendChild(closeButton);
document.body.appendChild(overlay);
document.body.appendChild(dialog);
}
// 使用自定义alert
customAlert('这是一个自定义的alert对话框!');
对于confirm
,您可以扩展customAlert
函数来添加一个确认按钮,并返回一个Promise,这样就可以使用异步等待用户的选择:
function customConfirm(message) {
return new Promise((resolve, reject) => {
// 创建UI和上述customAlert函数相同...
// 添加确认按钮
const confirmButton = document.createElement('button');
confirmButton.innerHTML = '确认';
confirmButton.onclick = function() {
resolve(true);
document.body.removeChild(overlay);
document.body.removeChild(dialog);
};
// 添加取消按钮
const cancelButton = document.createElement('button');
cancelButton.innerHTML = '取消';
cancelButton.style.marginLeft = '20px';
cancelButton.onclick = function() {
resolve(false);
document.body.removeChild(overlay);
document.body.removeChild(dialog);
};
// 添加按钮到弹窗
dialog.appendChild(confirmButton);
dialog.appendChild(cancelButton);
document.body.appendChild(overlay);
document.body.appendChild(dialog);
});
}
// 使用自定义confirm
评论已关闭