Warning: session_start(): open(/tmp/sess_nad0guae5e40u3h58khh37a431, O_RDWR) failed: No space left on device (28) in /disk2/guru/public_html/qa-include/app/users.php on line 146
สอบถามเรื่องก่อนปิดหน้าเว็บให้โชว์ Dialog Javascript คำถาม หน่อยครับ - CITEC-Guru ถามปัญหาคอม เขียนโปรแกรม
พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

สอบถามเรื่องก่อนปิดหน้าเว็บให้โชว์ Dialog Javascript คำถาม หน่อยครับ

+1 vote

คือตอนนี้ผมทำเว็บเกี่ยวกับการประเมินการใช้งานเว็บ น่ะครับ แล้วหลังจาก ผู้ใช้ logout หรือ กากบาท ปุ่มแดงบนมุมขวา ให้ มี dialog java หรือ

Jquery โชว์ขึ้นมาถามว่า กรุณาช่วยตอบแบบสอบถามหน่อยครับ แล้วถ้า user กด ตอบแบบสอบถาม ให้มัน redirect ไปที่หน้า แบบสอบถาม

อย่างนี้ครับ

มีวิธีการเขียน code ยังไงหรอครับ
 

$(function(){
$(window).bind("beforeunload",function(event){
var msg="กรุณาตอบแบบสอบถามเพื่อประเมินคุณภาพเว็บหน่อยครับ";
var chIk = window.confirm(msg);
if(chIk==true){
window.location = 'http://localhost/question/question.php';
$(window).unbind("beforeunload");
return false;
}else{
$(window).bind("unload",function(event){
event.stopImmediatePropagation();
});
}
});
 
หลักการประมาณคร่าวๆ ก็คือ ก่อนปิดหน้า Page ให้มี dialog jquery หรือ java เด้งขึ้นมา ถามว่า "กรุณาตอบแบบสอบถามหน่อยครับ" แล้วมีปุ่มสองปุ่ม คือ ตอบแบบสอบถาม  กับ ปุ่ม ยกเลิก   ถ้า user กด ตอบแบบสอบถาม ให้ redirect ไปที่หน้า แบบสอบถาม ประมาณนี้ครับ แล้วถ้า กด ยกเลิก ก็ ปิดหน้าเว็บนั้นไปครับ
 
ตอนนี้ผมเขียนได้ประมาณนี้แล้วล่ะครับ แต่ติดตรงที่ว่า Dialog ที่โชว์ขึ้นมายังไม่สวยงามอ่าครับ คือ ผมไม่อยากให้โชว์ dialog java แบบธรรมดาๆ อ่าครับ  แล้วตอนนี้ Page ทำการ Redirect ไปหน้าแบบสอบถามแล้ว แต่หลังที่ redirect เสร็จ มันจะมี Dialog ถามขึ้นมาอีกครั้งว่า "ต้องการคำยืนยันว่าคุณต้องการที่จะออกจากหน้าเว็บนี้ "  คือผมใช้ FireFox รันน่ะครับ แล้ว ถ้าผมใช้ตัว chome รันกดปิด หน้าเว็บแล้ว ไม่ไม่มี dialog อะไรเกิดขึ้นเลย มันปิดหน้าไปเฉยๆ เลยครัย ซึ่งต่างจาก FireFox มันรันตาม code ที่เขียนอยู่ครับ

 

ถามเมื่อ May 29, 2012 in Java โดย Farkham Break-love (242 คะแนน)
   

1 Answer

0 votes

ก่อนอื่น ต้องถามก่อนว่า bind เพื่ออะไรหรือครับ ไม่เห็นจำเป็นต้อง bind นี่ครับ
พอ domready ก็ขึ้น confirm dialog เลย ถ้า true ก็ redirect

 

$(function(){
    if (window.confirm("...")) window.location = 'http://localhost/question/question.php';
});
ตอบเมื่อ May 29, 2012 โดย Krurkrit Phoosakul (1,174 คะแนน)
edited May 29, 2012 โดย Krurkrit Phoosakul

 

$(function(){
$(window).bind("beforeunload",function(event){
var msg="กรุณาตอบแบบสอบถามเพื่อประเมินคุณภาพเว็บหน่อยครับ";
var chIk = window.confirm(msg);
 
if(chIk==true){
$(window).unbind("beforeunload");
window.location = 'http://localhost/question/question.php';
return false;
}else{
$(window).bind("unload",function(event){
event.stopImmediatePropagation();
});
}
});
$("a").click(function(){ // กรณีคลิกลิ้งค์ ไม่ต้องแสดง การแจ้งเตือน
$(window).unbind("beforeunload");
});
});
 
กะว่า จะ เอา tag a มาใช้ด้วยอ่าครับ
beforeunload กับ unload ใช้ตอนปิด browser, หยุด load หน้านั้น ผมเลยสงสัยว่าจะใส่เข้ามาใช้ทำอะไรหรือครับ ปกติผมไม่ได้ใช้ แต่ถ้าเอาแค่โหลดขึ้นมาแล้ว show dialog ให้ว่าจะทำแบบสอบถามไหม ใช้แค่ domready ก็พอแล้วครับ

Related questions

0 votes
0 คำตอบ
+2 votes
1 คำตอบ
...