เฟรม(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