ถ้าผมกดปิด(ตัวกากบาท)ตรง browser ให้มันแจ้งเตื่อนว่า คุณกำลังปิด browser ทำยังไงครับ
กรกฎ วิริยะ 24 Apr 2009 14:15
<body onunload="dounload()">

ในฟังก์ชั่น dounload ครับ
Unknown 24 Apr 2009 14:49
อ่อครับ
คือ onunload มันจะเด้งตอนเรารีเฟรชด้วยอ่ะครับ
อยากให้มันแค่แจ้งแค่ตอนปิดเท่านั้นอ่ะครับ
กรกฎ วิริยะ 24 Apr 2009 16:06
555+++

ครับใช่ แถมยังไม่ cross browser อีกต่างหาก

ลองใช้ event นี้กับ dom ระดับ 2 ดูสิครับ ถ้าใช้ GAJAX ก็

$G(document).addEvent('unload', function(){
  alert('xxx');
});
Unknown 25 Apr 2009 13:03
เอ๋ๆๆๆ
งั้นผมต้อง include GAJAX Libraly ของอาจารย์มั้ยครับ
พอดีผมไม่ได้ใช้ Libraly ไหนเลยอ่ะครับ

ถ้า include Libraly จริงผมเรียกใช้ ฟังก์ชันอาจารย์ข้างต้นที่ให้มาได้เลยใช่ไหมครับ
กรกฎ วิริยะ 25 Apr 2009 13:10
ครับต้องเรียก gajax ด้วย
กรกฎ วิริยะ 25 Apr 2009 13:21
ผิดไปนิดนึ้ง ค้องใช้ window แทน document

$G(window).addEvent('unload', function(){
  alert('xxx');
});
Unknown 25 Apr 2009 13:29
ผมโหลด GAJAX ตัว develop ของอาจารย์ไปใช้เลยนะครับ
หรือต้องใช้ตัว เต็ม - -"
เดี๋ยวลองก่อนละครับ ^^
Unknown 25 Apr 2009 13:49
อาจารย์ครับ
มันยังเด้งตอนรีเฟรชเช่นเดิมอ่ะครับ

ผมลองกับทั้งตัวเต็ม และตัว dev ของอาจารย์เลยอ่ะครับ
กรกฎ วิริยะ 25 Apr 2009 15:02
555+++ ตอนนี้ยังคิดวิธีอื่นไม่ออก

ฺBrowser สมัยใหม่ การทำงานมักเป็น tab คิดว่าไม่น่าจะแยกความแตกต่างของการ ปิด browser กะ refresh ได้นะ
Unknown 25 Apr 2009 17:00
ครับผม
อีกนิดครับ คือผมเคยเห็นเว็บบางที่มันมี สวัสดีครับ ตอนเข้า แล้วตอนเราปิดมันก็เด้งลาก่อน....
อะไรแบบนี้อ่ะครับ มันใช้วิธีการ listener เอาหรือเปล่าครับ
อีกอันคือเว็บเช่น hi5 ที่มันปรับแต่งพวกสกอบาร์ เม้า theme หน้าตาตัว ie explorer เองนี่
มันน่าจะดักจับเหตุการณ์ ตรงปุ่ม ย่อ ขยาย หรือปุ่มปิด ข้างบนตัว ie explorer ได้(หรือเปล่า)ครับ
ถ้าทำได้ เราจะเขียนจับอิเว้นพวกนี้ยังไงครับ เอาแค่อิเว้นตอนปิด ก็ได้ ^^


จุดประสงค์ผมคือ เอาไว้จัดการกับ user ที่ไม่ยอมกด ออกจากระบบ หลังจากที่เข้าใช้งานน่ะครับ
บางคนจะปิด browser ออกไปเลยอ่ะครับ เลยอยากจะจับอิเว้นตอนที่ตัว browser มันกำลังจะปิดตัวเอง
แล้วเอาไปบันทึกลงฐานข้อมูลว่าคุณ... ได้ลงชื่อออก แล้วก็ เคลียร์สถานะให้เป็น 0 คือให้ลงชื่อเข้าใช้ได้
ในครั้งหน้า (ระบบไม่ยอมให้ผู้ใช้ชื่อเดิมเข้าใช้ซ้ำ) คิดว่าพอจะได้ไหมครับ

เหตุผลอีกข้อคือ ถ้าไม่ทำการเคลียร์ค่าที่บันทึกไว้ว่าเข้าใช้งานไว้มันจะต้องติดต่อผู้ดูแลระบบให้เซ็ตค่าให้เป็น 0 เหมือนเดิมอ่ะครับ
ซึ่งผมว่ามันน่าจะมีทางเลือกอื่นที่ดีกว่า

ช่วยผมด้วยนะครับ ขอบคุณครับ..
กรกฎ วิริยะ 27 Apr 2009 08:42
ผมก็เคยพยายามครับ แต่ปัจจุบันผมเลิกคิดไปแล้ว

ข้อความต้อนรับ ก็ใช้ onload ครับ ส่วน ข้อความตอนออก ก็ใช้ unload

จริงๆแล้ว unload ค่อนข้างมีปัญหามากครับ เนื่องจาก Event นี้อาจเกิดได้หลายกรณีซึ่งเราควบคุมไม่ได้ครับ ทำให้ผมเองไม่เคยใช้ event นี้เลยครับ แต่เลี่ยงไปใช้วิธีอื่นแทนครับ

ส่วนวิธีอื่นก็อาจต้องปรับแนวคิดละครับ เช่น อาจใช้ SESSION ในการเก็บสถานะแทน โดยการตรวจสอบที่ SESSION เพื่อป้องกันการ online ซ้ำ แล้วก็ให้ใช้ช่วงเวลา เพื่อให้ SESSION หมดอายุเอง เมื่อไม่มีการใช้งานภายในช่วงเวลาหนึ่งครับ

สถานะการ login ไม่ควรเก็บลง db ครับ เนื่องจากหาก Browser ถูกปิดโดยเหตุไม่ปกติ ยังไงค่าใน db ก็ไม่ถูกเคลียร์ ครับ