色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 重寫(xiě) confirm

在網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要使用JavaScript來(lái)與用戶進(jìn)行交互。其中,confirm函數(shù)是常用的一種彈窗交互方式。但是,confirm彈窗樣式單調(diào),不便于自定義樣式。為了滿足定制彈窗的需求,我們就需要對(duì)confirm進(jìn)行重寫(xiě)。
一般來(lái)說(shuō),重寫(xiě)confirm的方法有兩種。第一種是在調(diào)用confirm函數(shù)之前,先定義一個(gè)新的confirm函數(shù)。這個(gè)新的函數(shù)可以自定義彈窗樣式,并且根據(jù)用戶的選擇進(jìn)行相應(yīng)的處理。比如下面這個(gè)例子:
<script>
function my_confirm(msg, callback) {
var box = document.createElement('div');
box.className = 'my-confirm-box';
var content = document.createElement('div');
content.className = 'my-confirm-content';
content.innerHTML = '<p>' + msg + '</p>';
box.appendChild(content);
var buttons = document.createElement('div');
buttons.className = 'my-confirm-buttons';
var ok = document.createElement('button');
ok.innerHTML = '確定';
ok.onclick = function() {
callback(true);
document.body.removeChild(box);
};
buttons.appendChild(ok);
var cancel = document.createElement('button');
cancel.innerHTML = '取消';
cancel.onclick = function() {
callback(false);
document.body.removeChild(box);
};
buttons.appendChild(cancel);
box.appendChild(buttons);
document.body.appendChild(box);
}
</script>

在這個(gè)例子中,我們定義了一個(gè)my_confirm函數(shù),它接受兩個(gè)參數(shù):msg和callback。msg表示要顯示的消息,callback是一個(gè)回調(diào)函數(shù),在用戶點(diǎn)擊“確定”或“取消”按鈕后被調(diào)用。這個(gè)函數(shù)會(huì)生成一個(gè)新的容器節(jié)點(diǎn),并在其中創(chuàng)建消息、按鈕等元素,最后將容器節(jié)點(diǎn)添加到文檔中。當(dāng)用戶點(diǎn)擊“確定”或“取消”按鈕時(shí),回調(diào)函數(shù)被調(diào)用,并傳遞一個(gè)布爾值表示用戶的選擇。
另一種重寫(xiě)confirm的方法是使用ES6的Promise。Promise可以將異步操作進(jìn)行封裝,并在操作完成后返回一個(gè)成功或失敗的結(jié)果。我們可以使用Promise來(lái)實(shí)現(xiàn)一個(gè)新的confirm函數(shù)。代碼如下:
<script>
function new_confirm(msg) {
return new Promise(function(resolve, reject) {
var box = document.createElement('div');
box.className = 'new-confirm-box';
var content = document.createElement('div');
content.className = 'new-confirm-content';
content.innerHTML = '<p>' + msg + '</p>';
box.appendChild(content);
var buttons = document.createElement('div');
buttons.className = 'new-confirm-buttons';
var ok = document.createElement('button');
ok.innerHTML = '確定';
ok.onclick = function() {
resolve(true);
document.body.removeChild(box);
};
buttons.appendChild(ok);
var cancel = document.createElement('button');
cancel.innerHTML = '取消';
cancel.onclick = function() {
resolve(false);
document.body.removeChild(box);
};
buttons.appendChild(cancel);
box.appendChild(buttons);
document.body.appendChild(box);
});
}
<br>
new_confirm('確定要?jiǎng)h除嗎?').then(function(result) {
if (result) {
alert('刪除成功!');
} else {
alert('取消刪除!');
}
});
</script>

在這個(gè)例子中,我們定義了一個(gè)new_confirm函數(shù),它接受一個(gè)參數(shù)msg。這個(gè)函數(shù)返回一個(gè)Promise對(duì)象,用于管理異步操作。當(dāng)用戶點(diǎn)擊“確定”或“取消”按鈕時(shí),resolve函數(shù)被調(diào)用,并傳遞一個(gè)布爾值表示用戶的選擇。我們可以通過(guò)鏈?zhǔn)秸{(diào)用then方法來(lái)處理Promise的結(jié)果,并根據(jù)用戶的選擇進(jìn)行相應(yīng)的處理。
總的來(lái)說(shuō),重寫(xiě)confirm的方法有很多種,可以根據(jù)自己的需求選擇合適的方式。重寫(xiě)confirm可以讓我們更好地掌控網(wǎng)頁(yè)交互的形式和樣式,從而提高用戶體驗(yàn)。