ฉันต้องเตือนผู้ใช้เกี่ยวกับการเปลี่ยนแปลงที่ไม่ได้บันทึกก่อนที่พวกเขาจะออกจากหน้าเว็บ (เป็นปัญหาที่พบบ่อยมาก)
window.onbeforeunload=handler
ใช้งานได้ แต่จะเพิ่มการโต้ตอบเริ่มต้นด้วยข้อความมาตรฐานที่น่ารำคาญที่ล้อมข้อความของฉันเอง ฉันต้องการแทนที่ข้อความมาตรฐานอย่างสมบูรณ์ดังนั้นข้อความของฉันจึงชัดเจนหรือ (ดียิ่งขึ้น) แทนไดอะล็อกทั้งหมดด้วยไดอะล็อก modal โดยใช้ jQuery
จนถึงตอนนี้ฉันล้มเหลวและไม่พบใครที่ดูเหมือนจะมีคำตอบ เป็นไปได้ไหม
Javascript ในหน้าของฉัน:
<script type="text/javascript">
window.onbeforeunload=closeIt;
</script>
ฟังก์ชั่น closeIt ():
function closeIt()
{
if (changes == "true" || files == "true")
{
return "Here you can append a custom message to the default dialog.";
}
}
การใช้ jQuery และ jqModal ฉันลองสิ่งนี้แล้ว (ใช้กล่องโต้ตอบยืนยันที่กำหนดเอง):
$(window).beforeunload(function() {
confirm('new message: ' + this.href + ' !', this.href);
return false;
});
ซึ่งยังใช้งานไม่ได้ - ฉันไม่สามารถผูกไว้กับเหตุการณ์ beforeunload ได้