Framesets
Framesets
คู่มือนี้แสดงวิธีการอ่านโครงสร้างหน้าเฟรมแบบดั้งเดิมใน Aspose.Words FOSS สำหรับ .NET โดยใช้คลาส Frameset และ FramesetCollection ซึ่งแสดงหน้าเฟรมและเฟรมลูกเมื่อโครงสร้างของเอกสารจำลองเป็นชุดของเฟรม.
คลาส Frameset
Frameset แทนหน้าเฟรมหรือเฟรมเดี่ยวบนหน้าเฟรม Document.Frameset คืนค่า Frameset รากสำหรับเอกสารที่โหลดจากโครงสร้าง HTML ที่มีเฟรม FrameDefaultUrl (string) คือ URL ของเว็บเพจหรือชื่อไฟล์เอกสารที่แสดงในเฟรมนั้น IsFrameLinkToFile (bool) ระบุว่าค่า FrameDefaultUrl เป็นทรัพยากรภายนอกที่เฟรมเชื่อมโยงไปหรือไม่ ChildFramesets คืนค่า FramesetCollection ของเฟรมลูกและหน้าเฟรมที่ซ้อนอยู่ภายใต้นี้.
การวนซ้ำเฟรมลูกด้วย FramesetCollection
FramesetCollection implements IEnumerable<Frameset>, ดังนั้น GetEnumerator() รองรับการวนซ้ำ foreach บนเฟรมที่มันประกอบอยู่ Count รายงานจำนวนเฟรมหรือหน้าเฟรมในคอลเลกชัน ผสาน Count กับการวนซ้ำด้วย ChildFramesets เพื่อเดินโครงสร้างหน้าเฟรมที่ซ้อนกันอย่างเรียกซ้ำ — Frameset ลูกแต่ละตัวสามารถมี ChildFramesets เพิ่มเติมได้เอง.
เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ตรวจสอบ
Document.Framesetสำหรับnullก่อนอ่านคุณสมบัติต่าง ๆ — เอกสารส่วนใหญ่ไม่ได้เป็นหน้าเฟรม ดังนั้นคุณสมบัตินี้จะถูกเติมค่าเฉพาะเมื่อ HTML ของแหล่งที่มาที่ใช้การจัดวางแบบเฟรม. - เดินผ่าน
ChildFramesetsอย่างเรียกซ้ำ (แทนที่จะสมมติว่าเป็นโครงสร้างแบนระดับเดียว) เนื่องจากหน้าเฟรมสามารถซ้อนหน้าเฟรมเพิ่มเติมภายในเฟรมของมัน. - ใช้
IsFrameLinkToFileเพื่อแยกแยะเฟรมที่ลิงก์ไปยังทรัพยากรภายนอกจากเฟรมที่ฝังชื่อไฟล์เอกสารโดยตรงในFrameDefaultUrl. FramesetCollection.Countเป็นวิธีง่าย ๆ เพื่อตรวจสอบว่าFramesetมีลูกหรือไม่ก่อนทำการวนลูป.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
Document.Frameset คือ null | เอกสารไม่ได้รับการโหลดจากแหล่งข้อมูล HTML ที่ใช้เฟรม | ยืนยันว่าเอกสารต้นทางใช้เฟรม HTML จริงก่อนพึ่งพาคุณสมบัตินี้ |
การวนซ้ำ ChildFramesets จะพลาดเฟรมที่ซ้อนกัน | มีการวนซ้ำเฉพาะระดับบนสุดเท่านั้น | ทำการเรียกซ้ำเข้าไปในแต่ละ child Frameset.ChildFramesets แทนการวนซ้ำระดับหนึ่งลึก |
| ไม่สามารถบอกได้ว่าเฟรมชี้ไปที่ไฟล์หรือ URL | IsFrameLinkToFile ไม่ได้ถูกตรวจสอบ | อ่าน IsFrameLinkToFile ควบคู่กับ FrameDefaultUrl เพื่อทราบวิธีแก้ไขเป้าหมาย |
FAQ
Frameset คืออะไรใน Aspose.Words FOSS สำหรับ .NET?
มันเป็นตัวแทนของหน้าเฟรมหรือเฟรมเดียวบนหน้าเฟรม ซึ่งเปิดเผยเป็น Document.Frameset สำหรับเอกสารที่โหลดจากแหล่งที่มาที่ใช้เฟรม HTML.
ฉันจะแสดงรายการเฟรมทั้งหมดใน frameset อย่างไร?
ทำการวนซ้ำ Frameset.ChildFramesets (ซึ่งเป็น FramesetCollection) ด้วย GetEnumerator() / foreach, แล้วทำการเรียกซ้ำลงไปในลูกใดที่มี ChildFramesets เพิ่มเติมอีก.
ฉันจะรู้ได้อย่างไรว่ามีเฟรมลูกใน Frameset กี่เฟรม?
อ่าน FramesetCollection.Count จากคุณสมบัติ ChildFramesets ของมัน.
IsFrameLinkToFile บอกคุณว่าอะไร?
ว่าเว็บเพจหรือชื่อไฟล์เอกสารใน FrameDefaultUrl เป็นทรัพยากรภายนอกที่เฟรมเชื่อมโยงถึงหรือไม่.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
Document.Frameset | Root Frameset สำหรับเอกสารที่โหลดจากแหล่งข้อมูล HTML แบบ frames-based |
Frameset | แสดงถึงหน้าเฟรมหรือเฟรมเดียวบนหน้าเฟรม |
Frameset.FrameDefaultUrl | URL ของหน้าเว็บหรือชื่อไฟล์เอกสารที่แสดงในเฟรม |
Frameset.IsFrameLinkToFile | ว่า FrameDefaultUrl เป็นทรัพยากรที่เชื่อมโยงภายนอกหรือไม่ |
Frameset.ChildFramesets | FramesetCollection ของเฟรมลูกและหน้าเฟรม |
FramesetCollection | คอลเลกชันของอินสแตนซ์ Frameset; Count, GetEnumerator |