สอบถามเรื่องการ กดปิด(ตัวกากบาท)ตรง browser HomeForumสอบถามเรื่องการ กดปิด(ตัวกากบาท)ตรง browser shinobu ถ้าต้องการกำหนด event เมื่อทำการกดปิด(ตัวกากบาท)ตรง browser ให้ไปทำงานอีกหน้านึง พอจะทำได้ไหมครับ ถ้าทำได้ ต้องทำยังไงหรอครับ ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ กรกฎ วิริยะ เมื่อกดปิดบราวเซอร์ จะมีการเรียก event onunload ครับ ให้ดัก event นี้ที่ body ครับ <body onunload = function(){....}> shinobu ขอบคุณสำหรับคำตอบครับ ^^ เด่วจะลองทำดูครับ ขอบคุณมากครับ shinobu เอ่อ ถ้า หน้าที่ต้องการกำหนด event เมื่อทำการกดปิด(ตัวกากบาท)ตรง browser เป็น popup window โดยที่ในหน้านั้น มีปุ่ม ok และ cancel โดยปุ่ม ok จะส่งค่า num1 ไปยังหน้า test.php และ ปุ่ม cancel จะส่งค่า num2 ไปยังหน้า test.php โดยที่ ค่า num1 และ num2 เกิดจากการ query ข้อมูลออกมา ถ้าต้องการให้ กดปิด(ตัวกากบาท)ตรง browser ทำหน้าที่เหมือนกับการกดปุ่ม cancel โดยที่ กดปิด(ตัวกากบาท)ตรง browser แล้วจะทำการส่งค่า num2 ไปยังหน้า test.php ต้องทำยังไงหรอครับ ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ กรกฎ วิริยะ onunload ก็ไปเรียกฟังก์ชั่นเดียวกันกับ เมื่อคลิก cancle สิครับ อาจทำได้โดยการเขียนคำสั่ง 2 ครั้ง คือใน cancle click และ ใน unload (แยกกัน) หรือ ให้ cancle click และ unload ไปเรียกฟังชั่นเดียวกัน ซึ่งภายในฟังก์ชั่นนั้นทำงานไปตามที่กำหนด function docancle() { alert('Cancle'); } <body onunload="docancle()"> <input type="button" name="cancle" onclick="docancle()" value="Cancle" /> shinobu ผมได้ลองทำตามที่แนะนำแล้วนะครับ แต่ก็ยังไม่ได้อ้ะครับ <script> function docancle() { window.location="test.php?ord="+data; } </script> <body onunload = "docancle()"> <input type="button" id="button" class="button" value="cancel" onClick="docancle()" /> <? echo '<script type="text/javascript">'; echo "var data = '$num2';"; echo '</script>'; ?> โดย ตัวแปร $num2 เป็นการ query ออกมาจาก database เมื่อทำการกด cancel สามารถทำงานได้ครับ แต่ถ้ากดปิด browser ไปจะไม่ทำงานจะไม่ทำงานในส่วน window.location น่ะครับ ไม่ทราบว่าต้องแก้ไข หรือเพิ่มอะไรในส่วนนี้รึเปล่าครับ ถึงจะทำให้เมื่อปิด browser แล้วส่งค่า $num2 ไปยังหน้า test.php น่ะครับ ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ กรกฎ วิริยะ 555++ นั่นแหละครับ ปัญหาของ unload เนื่องจากมันหวังผลไม่ค่อยได้ครับ และ ทำงานไม่เหมือนกันในแต่ละบราวเซอร์ ลอง window.onunload ดูครับ หรือไม่ก็อาจต้องใช้ FrameWork ช่วยครับ shinobu ไม่ทราบว่าต้อง เอาตัว window.onunload ไว้ในส่วนไหนหรอครับ กรกฎ วิริยะ นึกแล้วว่าต้องถาม.... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <script src="http://www.goragod.com/ajax/gajax.js" type="text/javascript"></script> <script type="text/javascript"> var docancle = function(event) { alert('unload'); } $G(window).addEvent('unload', docancle); </script> </HEAD> <BODY> <input type="button" name="cancle" onclick="docancle()" value="Cancle" /> </BODY> </HTML> ต้องใช้ Frame Work (GAJAX)เข้าช่วยละครับ เพื่อให้งานง่ายขึ้น shinobu อ่าา ขอบคุณครับ = =" shinobu ผมลองทดสอบดูแล้วนะครับ ผลเหมือนเดิมอ่าครับ = = โดยผมเปลี่ยน จากตรง alert('unload'); เป็น window.location="test.php?ord="+data; แทน อ้ะครับ ผลยังเหมือนเดิมอ้ะครับ ขอบคุณสำหรับคำแนะนำนะครับ กรกฎ วิริยะ ปัญหาที่อาจจะเกิด คือเมื่อ window ปิดหน้าต่างไปแล้ว มันก็จะกำหนด location อีกไม่ได้ครับ เนื่องจากเมื่อปิด window ก็จะต้องถูกปิดไปด้วย จึงไม่สามารถกำหนด window ได้อีก ผมไม่รู้ว่าหน้านี้ถูกเรียกมาอย่างไร เป็น popup หรือไม่ อาจต้องเลี่ยงไปใช้วิธีอืนอีกหลายวิธีครับ หลักๆแล้วปัญหาก็คือ ถ้าปิดกากบาทไป เราก็ไม่สามารถทำงานต่อได้ครับ ซึ่งในกรณีของการคลิก cancle จะสามารถทำงานต่อได้ เนื่องจาก window ยังอยู่ครับ shinobu อ่าครับ สงสัยผมคงต้องเปลี่ยนไปใช้วิธีอื่นแทนแล้วล่ะครับ ขอบคุณสำหรับคำแนะนำดี ๆ นะครับ ^^ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
เมื่อกดปิดบราวเซอร์ จะมีการเรียก event onunload ครับ ให้ดัก event นี้ที่ body ครับ
<body onunload = function(){....}>
เด่วจะลองทำดูครับ
ขอบคุณมากครับ
มีปุ่ม ok และ cancel โดยปุ่ม ok จะส่งค่า num1 ไปยังหน้า test.php และ ปุ่ม cancel จะส่งค่า num2 ไปยังหน้า test.php
โดยที่ ค่า num1 และ num2 เกิดจากการ query ข้อมูลออกมา ถ้าต้องการให้ กดปิด(ตัวกากบาท)ตรง browser ทำหน้าที่เหมือนกับการกดปุ่ม cancel โดยที่ กดปิด(ตัวกากบาท)ตรง browser แล้วจะทำการส่งค่า num2 ไปยังหน้า test.php
ต้องทำยังไงหรอครับ
ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ
onunload ก็ไปเรียกฟังก์ชั่นเดียวกันกับ เมื่อคลิก cancle สิครับ
อาจทำได้โดยการเขียนคำสั่ง 2 ครั้ง คือใน cancle click และ ใน unload (แยกกัน)
หรือ ให้ cancle click และ unload ไปเรียกฟังชั่นเดียวกัน ซึ่งภายในฟังก์ชั่นนั้นทำงานไปตามที่กำหนด
function docancle() {
alert('Cancle');
}
<body onunload="docancle()">
<input type="button" name="cancle" onclick="docancle()" value="Cancle" />
<input type="button" id="button" class="button" value="cancel" onClick="docancle()" />
โดย ตัวแปร $num2 เป็นการ query ออกมาจาก database
เมื่อทำการกด cancel สามารถทำงานได้ครับ แต่ถ้ากดปิด browser ไปจะไม่ทำงานจะไม่ทำงานในส่วน window.location น่ะครับ
ไม่ทราบว่าต้องแก้ไข หรือเพิ่มอะไรในส่วนนี้รึเปล่าครับ ถึงจะทำให้เมื่อปิด browser แล้วส่งค่า $num2 ไปยังหน้า test.php น่ะครับ
ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ
นั่นแหละครับ ปัญหาของ unload เนื่องจากมันหวังผลไม่ค่อยได้ครับ และ ทำงานไม่เหมือนกันในแต่ละบราวเซอร์
ลอง window.onunload ดูครับ หรือไม่ก็อาจต้องใช้ FrameWork ช่วยครับ
นึกแล้วว่าต้องถาม....
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script src="http://www.goragod.com/ajax/gajax.js" type="text/javascript"></script>
<script type="text/javascript">
var docancle = function(event) {
alert('unload');
}
$G(window).addEvent('unload', docancle);
</script>
</HEAD>
<BODY>
<input type="button" name="cancle" onclick="docancle()" value="Cancle" />
</BODY>
</HTML>
ต้องใช้ Frame Work (GAJAX)เข้าช่วยละครับ เพื่อให้งานง่ายขึ้น
โดยผมเปลี่ยน จากตรง alert('unload'); เป็น window.location="test.php?ord="+data; แทน อ้ะครับ ผลยังเหมือนเดิมอ้ะครับ
ขอบคุณสำหรับคำแนะนำนะครับ
ผมไม่รู้ว่าหน้านี้ถูกเรียกมาอย่างไร เป็น popup หรือไม่ อาจต้องเลี่ยงไปใช้วิธีอืนอีกหลายวิธีครับ
หลักๆแล้วปัญหาก็คือ ถ้าปิดกากบาทไป เราก็ไม่สามารถทำงานต่อได้ครับ ซึ่งในกรณีของการคลิก cancle จะสามารถทำงานต่อได้ เนื่องจาก window ยังอยู่ครับ
ขอบคุณสำหรับคำแนะนำดี ๆ นะครับ ^^