Javascript Tutorial: Mengakses window.alert setelah di overwrite

Oleh: Admin - Tue, 12 March, 2019

Overwrite window.alert function

Error loop function

Hahaha gimana sob? keren n'ga tuh pesan error diatas. Sering sering lah sob bikin error biar nambah pengalaman trouble shoot nya hahahaa ngeles. Tapi emang bener sob, berasa banget klo kita udah berhasil trouble shoot makin pede buat ngerjain orang yang lain jadinya :D.

Singkat cerita kenapa ane punya error kaya gambar diatas tuh gini sob, jadi ane pengen bikin custom fungsi alert javascript.

function alert(message, title="Error!!", type="error"){
    if(typeof swal !== 'undefined') swal(title, message, type);
    else{ alert(message); }
}

Nih sob coba liat, dari kodingan amatir ane itu ternyata bikin never ending loop disisi browsernya sob hahahaa, tapi berhubung browser zaman now udah keren jadi dia force stop itu fungsi. Kalo kita telusurin kira kira begini flow -nya, ketika kita buat fungsi alert itu, otomatis akan me-nimpa fungsi alert (bawaan) browser. Dan pas kita pake fungsi itu, terutama dihalaman yang n'ga me-load library `sweetalert`, looping pun terjadi.

Jadi gimana cara ane buat trouble shootnya tadi? oke gapake lama, capcus aja liat kodingan berikut.

function alert(message, title="Error!!", type="error"){
    if(typeof swal !== 'undefined') swal(title, message, type);
    else{
        var i = document.createElement('iframe');
        i.style.display = 'none';
        document.body.appendChild(i);
        window.alert = i.contentWindow.alert;

        alert(message);
    }
}

Seperti yang terlihat sob, baris else{} itu kita update dan ada sedikit penambahan. Berhubung fungsi alert bawaan browser kita udah ketimpa, jadi kita akali dengan alert dari iframe yang kita generate di else{} itu. Kalo mau lebih detail lagi mending di -reproduce aja di browser ente sendiri :p hahhaaa biar ngerasain sendiri gituh.

Beuhhh berasa jagoan neon nih gue sob bisa solve juga ini looping hhahaha.
Oke sob semoga bermanfaat yaa, salam.