ส่วนหนึ่งของโค้ดเกมออนไลน์ของเปรียว

 <script type="text/javascript">
function centerScreenW(halfW){
 var halfW=halfW/2;
 var centerW=screen.width;
 centerW=centerW-10;
 centerW=centerW/2;
 centerW=centerW-halfW;
 return centerW;
}
function centerScreenH(halfH){
 var halfH=halfH/2;
 var centerH=screen.height;
 centerH=centerH-35;
 centerH=centerH/2;
 centerH=centerH-halfH;
 return centerH;
}
function newWindow(page,name,width,height,left,top){
 //var width = screen.width-10; // ความกว้างของหน้าต่างใหม่เท่าหน้าจอผู้ใช้(ไม่ใช้แล้ว)
 //var height = screen.height-35; // ความสูงของหน้าต่างใหม่เท่าหน้าจอผู้ใช้(ไม่ใช้แล้ว)
 window.open(page,name,"fullscreen=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizeable=no,width=" + width + ",height=" + height + ",outerWidth=0,outerHeight=0,left=" + left + ",top=" + top + ",alwayRaised=no,z-lock=yes");
}
 
setTimeout("newWindow('index.php','IKRONOZ','800','600'," + centerScreenW('800') + "," + centerScreenH('600') + ")", 1500);
</script>

อันนี้เป็นส่วนหนึ่งจากหน้าล็อคอินของการเขียนเกมด้วยจาว่าสคริปท์ที่เปรียวเคยทำไว้(แต่ยังไม่เสร็จ ไม่มีเวลาทำต่อ)
กระบวนการตรวจสอบการล็อคอินทำงานเรียบร้อยแล้วจะเรียกคำสั่งชุดนี้ขึ้นมา เพื่อเปดหน้าต่างเกมชึ้นมาอีกที

จากการใช้งานจริงแล้วใน IE และ Firefox นั้นสามารถทำงานได้อย่างไม่มีปัญหาใดๆ
มี Safari เท่านั้นที่นิ่งไม่ไหวติงใดๆทั้งนั้น

จึงอยากให้ช่วยหาหน่อยฮ่ะว่าเปรียวลืมหรือมองข้ามที่ตรงไหน แล้วส่วนใน function centerScreen
เปรียวอยากจะเปลี่ยนการเขียนสูตรคำนวนให้กระชับมากกว่านี้ หรือมีฟังชั่นที่ใช้งานง่ายกว่านี้มั๊ยฮ่ะ

ตรงนี้ใครอยากจะเอาไปประยุกต์ใช้ก็ได้นะฮ่ะ เปรียวไม่หวง
ขอบคุณล่วงหน้าสำหรับทุกท่านที่เข้ามาตอบ
01 ก.ย. 2552 4 2,076

ปกติที่เคยใช้ ก็แบบนี้
// เรียก windows แบบ popup
function popupwindow( filename , windowname , w , h )
{
    var winl = ( screen.width - w ) / 2;
    var wint = ( screen.height - h ) / 2;
    winl = ( winl < 0 ) ? 0 : winl;
    wint = ( wint < 0 ) ? 0 : wint;
    var settings = 'height=' + h + ',';
    settings += 'width=' + w + ',';
    settings += 'top=' + wint + ',';
    settings += 'left=' + winl + ',';
    settings += 'resizable=0, scrollbars=0, status=0,toolbar=0, menubars=0, location=0';
    var win = window.open( '/' + filename , windowname , settings );
    win.window.focus();
};
#1

ย่นไปได้เยอะเลยนะฮะ

พยามจะเข้าไปลึกๆ แต่รู้สึกเหมือนถูกถีบออกมาเสมอๆ

แต่คุณอาช่วยอธิบายหน่อยว่าทำไม การแสดงผลใน Safari ถึงได้ไม่ตอบสนองตามความต้องการน่ะฮะ

แบบว่า "งองูคูณสองยกกำลังสอง" = ง๊ง งง.....
อยากจะเข้าใจเรื่องนี้

ขอบคุณสุดๆ

#2

บอกตรงๆ ว่าไม่รู้หรอก เพราะไม่ได้ทดสอบโค้ดเธอ โค้ดที่ให้ไป ก็คือโค้ดที่เคยใช้อยู่ เดาว่าน่าจะทำงานได้

โค้ดเธอ อาจมีบางคำสั่งที่ใช้ไม่ได้กับ safari มั้ง มัันเลยไม่ทำงาน
#3

เจอต้นตอแล้วฮ่ะ
เป็นเพราะ setTimeout
ลองเปลี่ยนเป็น Button มันทำงานได้
ของคุณอาเป็นเหมือนกัน พอ setTimeout แล้วไม่ทำงาน
แต่ถ้าเป็น Button มันถึงจะทำงานได้

(ขอย้ำการทดสอบเป็นเฉพาะใน Safari เท่านั้น อื่นๆ ไม่มีปัญหา)

ไม่รู้คนอื่นจะเป็นเหมือนกันป่าว
ใครอยากลองก็นำโค้ดด้านบนไปทดสอบกันดู

ขอบพระคุณ คุณอาสุดๆ
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^