- เฟรม(Frame) คือ การแบ่งหน้าต่าง Internet Explorer ให้สามารถแสดงเพจให้หลายๆ เพจพร้อมๆ กัน อาจจะเป็น 2 เพจหรือ 3 เพจ ก็แล้วแต่
จะออกแบบ
- การสร้างเฟรม จะสร้างจากภาษาเอชทีเอ็มแอลก่อน และถ้าต้องการควบคุมการทำงานของเฟรม จึงค่อยใช้ VBScript ทีหลัง รูปแบบการเขียนคำสั่ง
สำหรับสร้างเฟรมมีดังนี้ คือ
- < FRAMESET COLS="XXX,*" BORDER=0 FRAMEBORDER=0 FRAMEPACING=0 >
- < FRAME SCR="PicMovi.htm" NAME="nav" SCROLLING=AUTO >
- < FEAME SCR="TimOut3.htm" NAME="main" SCROLLING=AUTO >
- < /FRAMESET >
และมีพร็อปเพอร์ตี้ของเฟรมให้ปรับปรุงอีก ดังต่อไปนี้คือ
1. Cols
- เป็นพร็อปเพอร์ตี้สำหรับกำหนดความกว้างของเฟรม มีหน่วยเป็นพิกเซล และสามารถกำหนดความกว้างได้เป็น 2 ส่วน คือ กำหนดให้เฟรมเล็กที่แบ่งอยู่
ด้านซ้ายหรือขวา ถ้าเราต้องการเฟรมเล็กอยู่ด้านซ้ายมือแล้ว เราก็กำหนดขนาดเฟรมเล็กอยู่ทางซ้ายมือส่วนด้านขวามือเป็นเครื่องหมายดอกจัน และคั่นด้วยเครื่องหมาย
ลูกน้ำ เช่น
- < FrameSet Cols=100,*" >
หมายความว่า แบ่งเฟรมออกทางด้านซ้ายมือ ให้มีความกว้างเป็น 100 พิกเซล
- แต่ถ้าเราต้องการแบ่งเฟรมออกทางซ้ายมือแล้ว เราต้องกำหนดตัวเลขอยู่ทางด้านขวามือ คือ อยู่ด้านหลังเครื่องหมายดอกจัน เช่น
- < FrameSet Cols="*,100" >
หมายความว่า ให้แบ่งเฟรมออกทางด้านขวามือ ให้มีความกว้างเป็น 100 พิกเซล
2. Border
- เป็นพร็อปเพอร์ตี้ทีกำหนดความก้างของขอบที่ติดต่อกันของเฟรม 2 เฟรม มีหน่วยเป็นพิกเซล ถ้าเรากำหนด Border มาก ขอบแนวต่อระหว่างเฟรม
ก็มีมาก และถ้าไม่มีการกำหนดให้มีการเปลี่ยนแปลงขนาดแล้ว เราสามารถลากตรงบริเวณแนวต่อของเฟรมไปมา เพื่อเปลี่ยนแปลงขนาดนี้ได้
3. Frame Border
- เป็นพร็อปเพอร์ตี้ที่ทำงานคล้ายๆ กับ Border ทุกประการ คือ สำหรับกำหนดขนาดความหนาระหว่างเฟรม มีหน่วยเป็นพิกเซล ถ้าเรากำหนดที่ Border
แล้ว ก็ไม่ต้องกำหนดที่พร็อปเพอร์ตี้นี้
4. Frame Spacing
- เป็นพร็อปเพอร์ตี้ที่กำหนดระยะห่างระหว่างเฟรมทั้ง 2 ซึ่งก็มีหน้าที่คล้ายๆ กับ Border อีกเช่นกัน มีหน่วยเป็นพิกเซล และหากมีการกำหนด Border
แล้ว ก็ไม่ต้องกำหนดอีกก็ได้
5. Rows
- เป็นพร็อปเพอร์ตี้สำคัญสำหรับทำให้มีการแบ่งเฟรมออกเป็น 2 ส่วนตามแนวนอน
- และมีรูปแบบการกำหนดความสูงของเฟรมที่แบ่งเหมือนกับ Cols คือ ถ้าต้องการแบบเฟรมเล็กจากด้านบน ก็ให้กำหนดตัวเลขก่อนลูกน้ำและดอกจัน
ดังนี้ คือ
- < FrameSet Rows="170,*" >
หรือถ้าต้องการแบ่งเฟรมจากทางด้านล่าง ก็จะสามารถเขียนคำสั่งได้เป็น
- < FrameSet Rows="*,170" >
การสร้างเพจในเฟรม
- เมื่อเรากำหนดรูปแบบของเฟรมที่จะแบ่งแล้ว ต่อไปนี้เราจะสรางเพจในแต่ละเฟรม โดยมีคำสั่งที่สร้างเฟรมเป็น และมีพร็อปเพอร์ตี้สำหรับ
กำหนดเฟรมนั้นให้ทำงานได้ครบตามต้องการโดยมีพร็อปเพอร์ตี้ดังนี้ คือ
- 1. Src เป็นพร็อปเพอร์ตี้สำหรับกำหนดชื่อและที่อยู่ของเว็บเพจที่จะใช้กับเฟรมนั้นๆ โดยมีรูปแบบคำสั่งเป็น < Frame Src="Pic.HTM" >
- 2. Name เป็นพร็อปเพอร์ตี้สำคัญอีกอันหนึ่ง เพื่อตั้งชื่อให้กับเฟรม เพื่อให้มีการอ้างอิงถึงในขณะที่เขียน VBScript โดยมีรูปแบบดังนี้ คือ
- < Frame Src="Pic.HTM" Name="Pic" >
- 3. Scrolling เป็นพร็อปเพอร์ตี้ที่กำหนดสกรอลล์ทั้งสกรอลล์แนวตั้งและแนวนอน ว่าให้มีการใช้ไนเพจหรือไม่ โดยจะมีค่าเป็น "No" และ
"Auto" ซึ่งตามปกติแล้วควรตั้งให้เป็น "Auto" โดยมีรูปแบบการเขียนคำสั่งดังนี้ คือ
- < Frame Src="Pic.HTM" Name="Pic" Scrolling="Auto" >
ขั้นตอนการสร้างเฟรม
- 1. ถ้าเรากำหนการแบ่งเฟรมออกเป็นแนวตั้ง คือ มีการกำหนดพร็อปเพอร์ตี้ Cols เฟรมที่มีการสร้างก่อนจะเป็นเฟรมย่อยที่แยกออกจากเฟรม
ส่วนที่สร้างทีหลังจะเป็นเฟรมหลัก
- 2. แต่ถ้ามีการแบ่งเฟรมออกตามแนวนอน คือ มีการใช้พร็อปเพอร์ตี้ Rows แล้ว เฟรม
แรกที่สร้างจะเป็นเฟรมย่อยแยกออกมา ส่วนเฟรมที่สร้างทีหลังจะเป็นเฟรมหลัก
- ตัวอย่าง สมมติว่าเราต้องการสร้างเฟรมย่อยออกไปทางด้านซ้ายมือ โดยใช้เพจที่ชื่อ PrcClick.Htm และให้สร้างเฟรมอีกอันหนึ่งให้มีชื่อเพจเป็น
PicMovi.HTM และให้สกรอลล์เป็น Auto ทั้ง 2 เฟรม ซึ่งจะเขียนคำสั่งได้เป็น
- < FrameSet Cols="200,*" Border="0" >
- < Frame Src="PicClick.Htm Name="Sub" Scrolling="Auto" >
- < Frame Src=PicMovi.Htm Name="Main" Scrolling="Auto" >
- < /FrameSet >
การสร้างเฟรมหลายเฟรม
- เราสามารถสร้างเฟรมให้มากกว่า 2 เฟรมได้ หรือเราจะผสมเฟรมจากเฟรมคอลัมน์ (Clolumm) มาเป็นเฟรมแถว (Rows) ได้ โดยการเพิ่มคำสั่ง FrameSet แทรก
เข้าไปในเฟรม ดังตัวอย่างและการเขียนคำสั่งการสร้างเฟรมต่อไปนี้ คือ
- < HTML >
- < FRAMESET COLS="230,*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0 >
- < FRAMESET Row="130,*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0 >
- < FRAME SRC="PicMovi.htm" SCROLLING=AUTO >
- < FRAME SRC="PicClick.htm" SCROLLING=AUTO >
- < /FRAMESET >
- < FRAME SRC="TimOut2.htm" NAME="main" SCROLLING=AUTO >
- < /FRAMESET >
- < /HTML >
การเขียนโปรแกรมเพื่อควบคุมการทำงานของเฟรม
- จากตัวอย่างที่ผ่านมาเราจะเห็นได้ว่า การสร้างเฟรมๆ หนึ่งนั้นจะต้องอาศัยเพจทั้งหมดอย่างน้อย 3 เพจ คือ เพจที่เป็นเฟรม , เพจที่เป็นเฟรมย่อย และ
เพจที่เป็นเฟรมหลัก สำหรับเพจเดี่ยวๆ นั้น เมื่อเราจะอ้างอิงถึงออบเจ็กต์ใดออบเจ็กต์หนึ่งนั่น จะอ้างอิงถึงหน่วยใหญ่ที่สุดเรียงลงไปจนถึงลำดับที่ของ
ออบเจ็กต์นั้น นั่นคือ ตั้งแต่ Document มาเป็น Body หรือ From หรือ All และก็มาถึงออบเจ็กต์จากออบเจ็กต์ก็จะเป็นพร็อปเพอร์ตี้ หรือคำสั่งของ
ออบเจ็กต์นั้นๆ และถ้าพร็อปเพอร์ตี้ใดมีพร็อปเพอร์ตี้ย่อย ก็ให้เขียนคำสั่งจากพร็อปเพอร์ตี้นั้น ดังเช่น Doccument.From.Img.Style.Visibility
เป็นต้น
- แต่ในกรณีของฟอร์มที่ต้องมีการทำงานร่วมกันหลายเพจนั้น ก็จะมีหน่วยที่ใหญ่ขึ้นจาก Document คือ Parent ดังนั้นในการกล่าวถึงออบเจ็กต์หรือ
ปรับปรุงพร็อปเพอร์ตี้ จะต้องเริ่มจาก Parent แล้วจึงมาที่ Document และในแต่ละเฟรมจะต้องมีการตั้งชื่อของเฟรมด้วย
ตัวอย่างเช่น ถ้าเราสร้างเฟรม 2 เฟรมที่มีชื่อเป็น "Sub" และ "Main" แต่ถ้าเราต้องการทำงานในเฟรม Sub แต่ต้องการอ้างอิงถึงพร็อปเพอร์ตี้ของ
ออบเจ็กต์ที่อยู่ในอีกเฟรมหนึ่ง คือ เฟรม Main เราจะเขียนคำสั่งได้เป็น
- Parenr.Main.Combo.Value หมายความว่า ขณะที่ทำงานอยู่ที่เฟรม Sub แต่ต้องการข้อมูบ Value จากเฟรม Main ของออบเจ็กต์ Select เป็นต้น
การเขียนโปรแกรมเพื่อนำเพจต่างๆ ขึ้นแสดงเป็นเฟรม
- เมื่อเพจต่างๆ อยู่บนเฟรมแล้ว เรายังสามารถเขียนโปรแกรมเพื่อให้เฟรมสามารถนำเพจต่างๆ ที่เราต้องการแสดงได้ นอกเหนือจากการใช้คำสั่ง Src ในตอนต้น
ของเฟรมโดยภาพยนต์คำสั่งได้ดังนี้ คือ parent.Main.Location="Pic.HTM" โดยที่ Main จะเป็นชื่อของเฟรม Location เป็นคำสั่งสำหรับให้นำเพจขึ้นมาที่เฟรม
Main