A-AA+then

สอบถามเรื่องการ กดปิด(ตัวกากบาท)ตรง browser

2,556
 ถ้าต้องการกำหนด event เมื่อทำการกดปิด(ตัวกากบาท)ตรง browser ให้ไปทำงานอีกหน้านึง พอจะทำได้ไหมครับ
ถ้าทำได้ ต้องทำยังไงหรอครับ

ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ

12 ความคิดเห็น

เมื่อกดปิดบราวเซอร์ จะมีการเรียก event onunload ครับ ให้ดัก event นี้ที่ body ครับ

<body onunload = function(){....}>

1

 ขอบคุณสำหรับคำตอบครับ ^^

เด่วจะลองทำดูครับ

ขอบคุณมากครับ
2

เอ่อ ถ้า หน้าที่ต้องการกำหนด event เมื่อทำการกดปิด(ตัวกากบาท)ตรง browser เป็น popup window โดยที่ในหน้านั้น
มีปุ่ม ok และ cancel โดยปุ่ม ok จะส่งค่า num1 ไปยังหน้า test.php และ ปุ่ม cancel จะส่งค่า num2 ไปยังหน้า test.php 
โดยที่ ค่า num1 และ num2 เกิดจากการ query ข้อมูลออกมา ถ้าต้องการให้ กดปิด(ตัวกากบาท)ตรง browser ทำหน้าที่เหมือนกับการกดปุ่ม cancel โดยที่ กดปิด(ตัวกากบาท)ตรง browser แล้วจะทำการส่งค่า num2 ไปยังหน้า test.php
ต้องทำยังไงหรอครับ

ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ 
3

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" />

4

 ผมได้ลองทำตามที่แนะนำแล้วนะครับ แต่ก็ยังไม่ได้อ้ะครับ 

<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 น่ะครับ

ขอบคุณล่วงหน้า สำหรับคำตอบนะครับ 
5

555++
นั่นแหละครับ ปัญหาของ unload เนื่องจากมันหวังผลไม่ค่อยได้ครับ และ ทำงานไม่เหมือนกันในแต่ละบราวเซอร์

ลอง window.onunload ดูครับ หรือไม่ก็อาจต้องใช้ FrameWork ช่วยครับ
6

ไม่ทราบว่าต้อง เอาตัว window.onunload ไว้ในส่วนไหนหรอครับ
7

นึกแล้วว่าต้องถาม....

<!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)เข้าช่วยละครับ เพื่อให้งานง่ายขึ้น

8

อ่าา ขอบคุณครับ = ="
9

 ผมลองทดสอบดูแล้วนะครับ ผลเหมือนเดิมอ่าครับ = =

โดยผมเปลี่ยน จากตรง alert('unload'); เป็น window.location="test.php?ord="+data; แทน อ้ะครับ ผลยังเหมือนเดิมอ้ะครับ

ขอบคุณสำหรับคำแนะนำนะครับ
 
10

ปัญหาที่อาจจะเกิด คือเมื่อ window ปิดหน้าต่างไปแล้ว มันก็จะกำหนด location อีกไม่ได้ครับ เนื่องจากเมื่อปิด window ก็จะต้องถูกปิดไปด้วย จึงไม่สามารถกำหนด window ได้อีก

ผมไม่รู้ว่าหน้านี้ถูกเรียกมาอย่างไร เป็น popup หรือไม่ อาจต้องเลี่ยงไปใช้วิธีอืนอีกหลายวิธีครับ

หลักๆแล้วปัญหาก็คือ ถ้าปิดกากบาทไป เราก็ไม่สามารถทำงานต่อได้ครับ ซึ่งในกรณีของการคลิก cancle จะสามารถทำงานต่อได้ เนื่องจาก window ยังอยู่ครับ
11

 อ่าครับ สงสัยผมคงต้องเปลี่ยนไปใช้วิธีอื่นแทนแล้วล่ะครับ

ขอบคุณสำหรับคำแนะนำดี ๆ นะครับ ^^
12
^