คำอธิบาย
ใช้ chrome.webNavigation API เพื่อรับการแจ้งเตือนเกี่ยวกับสถานะของคำขอการนำทางระหว่างดำเนินการ
สิทธิ์
webNavigationเมธอดและเหตุการณ์ browser.webNavigation ทั้งหมดกำหนดให้คุณต้องประกาศสิทธิ์ "webNavigation" ในไฟล์ Manifest ของส่วนขยาย เช่น
{
"name": "My extension",
...
"permissions": [
"webNavigation"
],
...
}
แนวคิดและการใช้งาน
ลำดับเหตุการณ์
สำหรับการนำทางที่เสร็จสมบูรณ์ ระบบจะเริ่มเหตุการณ์ตามลำดับต่อไปนี้
onBeforeNavigate -> onCommitted -> [onDOMContentLoaded] -> onCompleted
ข้อผิดพลาดที่เกิดขึ้นระหว่างกระบวนการจะส่งผลให้เกิดเหตุการณ์ onErrorOccurred สำหรับการไปยังส่วนต่างๆ ที่เฉพาะเจาะจง จะไม่มีการเริ่มเหตุการณ์เพิ่มเติมหลังจาก onErrorOccurred
หากเฟรมที่กำลังไปยังหน้าเว็บมีเฟรมย่อย ระบบจะเริ่มทำงาน onCommitted ก่อนเฟรมย่อย onBeforeNavigate ส่วน onCompleted จะเริ่มทำงานหลังจากเฟรมย่อย onCompleted ทั้งหมด
หากมีการเปลี่ยนแปลงส่วนอ้างอิงของเฟรม ระบบจะเริ่มเหตุการณ์ onReferenceFragmentUpdated เหตุการณ์นี้สามารถเริ่มทำงานได้ทุกเมื่อหลังจาก onDOMContentLoaded แม้จะเลย onCompleted ไปแล้วก็ตาม
หากใช้ History API เพื่อแก้ไขสถานะของเฟรม (เช่น การใช้ history.pushState() ระบบจะเริ่มเหตุการณ์ onHistoryStateUpdated เหตุการณ์นี้จะเริ่มทำงานได้ทุกเมื่อหลังจาก onDOMContentLoaded
หากการไปยังส่วนต่างๆ กู้คืนหน้าเว็บจาก Back-Forward Cache เหตุการณ์ onDOMContentLoaded จะไม่เริ่มทำงาน เหตุการณ์จะไม่เริ่มทำงานเนื่องจากเนื้อหาโหลดเสร็จแล้วเมื่อมีการเข้าชมหน้าเว็บเป็นครั้งแรก
หากมีการเรียกใช้การนำทางโดยใช้ Chrome ค้นหาทันใจ หรือหน้าเว็บแบบทันใจ ระบบจะสลับหน้าเว็บที่โหลดเสร็จสมบูรณ์แล้วเข้าไปในแท็บปัจจุบัน ในกรณีนี้ ระบบจะเริ่มเหตุการณ์ onTabReplaced
ความสัมพันธ์กับเหตุการณ์ webRequest
ไม่มีการกำหนดลำดับระหว่างเหตุการณ์ของ webRequest API และเหตุการณ์ของ webNavigation API เป็นไปได้ว่าระบบจะยังคงได้รับเหตุการณ์ webRequest สำหรับเฟรมที่เริ่มการนำทางใหม่แล้ว หรือการนำทางจะดำเนินการต่อหลังจากโหลดทรัพยากรเครือข่ายจนเสร็จสมบูรณ์แล้วเท่านั้น
โดยทั่วไป เหตุการณ์ webNavigation จะเกี่ยวข้องอย่างใกล้ชิดกับสถานะการนําทางที่แสดงใน UI ขณะที่เหตุการณ์ webRequest จะสอดคล้องกับสถานะของสแต็กเครือข่ายซึ่งโดยทั่วไปผู้ใช้จะมองไม่เห็น
รหัสแท็บ
แท็บที่กำลังไปยังหน้าเว็บไม่ได้สอดคล้องกับแท็บจริงใน UI ของ Chrome ทั้งหมด เช่น แท็บที่กำลังแสดงผลล่วงหน้า แท็บดังกล่าวไม่สามารถเข้าถึงได้โดยใช้ tabs API และคุณไม่สามารถขอข้อมูลเกี่ยวกับแท็บเหล่านั้นโดยการเรียกใช้ webNavigation.getFrame() หรือ webNavigation.getAllFrames() เมื่อสลับแท็บดังกล่าวเข้ามาแล้ว ระบบจะเริ่มเหตุการณ์ onTabReplaced และแท็บจะเข้าถึงได้ผ่าน API เหล่านี้
การประทับเวลา
โปรดทราบว่าความผิดปกติทางเทคนิคบางอย่างในการจัดการกระบวนการ Chrome ที่แตกต่างกันของระบบปฏิบัติการอาจทำให้เวลาคลาดเคลื่อนระหว่างตัวเบราว์เซอร์เองกับกระบวนการของส่วนขยาย ซึ่งหมายความว่าพร็อพเพอร์ตี้ timeStamp ของพร็อพเพอร์ตี้ timeStamp ของเหตุการณ์ WebNavigation จะรับประกันความสอดคล้องกันภายในเท่านั้น การเปรียบเทียบเหตุการณ์หนึ่งกับอีกเหตุการณ์หนึ่งจะให้ค่าออฟเซ็ตที่ถูกต้องระหว่างเหตุการณ์ทั้งสอง แต่การเปรียบเทียบกับเวลาปัจจุบันภายในส่วนขยาย (เช่น การใช้ (new Date()).getTime()) อาจให้ผลลัพธ์ที่ไม่คาดคิด
รหัสเฟรม
เฟรมภายในแท็บจะระบุได้ด้วยรหัสเฟรม รหัสเฟรมของเฟรมหลักจะเป็น 0 เสมอ ส่วนรหัสของเฟรมย่อยจะเป็นจำนวนบวก เมื่อสร้างเอกสารในเฟรมแล้ว รหัสเฟรมจะยังคงเหมือนเดิมตลอดอายุการใช้งานของเอกสาร ตั้งแต่ Chrome 49 เป็นต้นมา รหัสนี้จะคงที่ตลอดอายุการใช้งานของเฟรม (ในการไปยังส่วนต่างๆ หลายครั้ง)
เนื่องจากลักษณะการทำงานแบบหลายกระบวนการของ Chrome แท็บจึงอาจใช้กระบวนการที่แตกต่างกันในการแสดงผลต้นทางและปลายทางของหน้าเว็บ ดังนั้น หากการนําทางเกิดขึ้นในกระบวนการใหม่ คุณอาจได้รับเหตุการณ์ทั้งจากหน้าใหม่และหน้าเก่าจนกว่าจะมีการคอมมิตการนําทางใหม่ (นั่นคือ ระบบจะส่งเหตุการณ์ onCommitted สําหรับเฟรมหลักใหม่) กล่าวคือ อาจมีลำดับเหตุการณ์ webNavigation ที่รอดำเนินการมากกว่า 1 รายการซึ่งมี frameId เดียวกัน โดยลำดับจะแยกความแตกต่างได้ด้วยคีย์ processId
นอกจากนี้ โปรดทราบว่าในระหว่างการโหลดชั่วคราว ระบบอาจเปลี่ยนกระบวนการหลายครั้ง ซึ่งจะเกิดขึ้นเมื่อมีการเปลี่ยนเส้นทางการโหลดไปยังเว็บไซต์อื่น ในกรณีนี้ คุณจะได้รับเหตุการณ์ onBeforeNavigate และ onErrorOccurred ซ้ำๆ จนกว่าจะได้รับเหตุการณ์ onCommitted สุดท้าย
แนวคิดอีกอย่างหนึ่งที่เป็นปัญหาเกี่ยวกับส่วนขยายคือวงจรของเฟรม เฟรมโฮสต์เอกสาร (ซึ่งเชื่อมโยงกับ URL ที่คอมมิต) เอกสารสามารถเปลี่ยนแปลงได้ (เช่น โดยการไปยังส่วนต่างๆ) แต่ frameId จะไม่เปลี่ยนแปลง จึงเป็นเรื่องยากที่จะเชื่อมโยงว่ามีบางอย่างเกิดขึ้นในเอกสารที่เฉพาะเจาะจงด้วย frameId เพียงอย่างเดียว เราขอแนะนำแนวคิดของ documentId ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันต่อเอกสาร หากมีการไปยังเฟรมและเปิดเอกสารใหม่ ตัวระบุจะเปลี่ยนไป ฟิลด์นี้มีประโยชน์ในการระบุว่าหน้าเว็บเปลี่ยนสถานะวงจร (ระหว่างการแสดงผลล่วงหน้า/ใช้งานอยู่/แคช) เมื่อใด เนื่องจากฟิลด์นี้จะยังคงเหมือนเดิม
ประเภทการเปลี่ยนและตัวระบุคุณสมบัติ
เหตุการณ์ onCommitted ของ webNavigation มีพร็อพเพอร์ตี้ transitionType และ transitionQualifiers ประเภทการเปลี่ยนจะเหมือนกับที่ใช้ใน history API ซึ่งอธิบายวิธีที่เบราว์เซอร์ไปยัง URL นั้นๆ นอกจากนี้ ระบบยังแสดงผลตัวระบุการเปลี่ยนผ่านหลายรายการซึ่งจะช่วยกำหนดการนำทางเพิ่มเติมได้
คุณสมบัติการเปลี่ยนผ่านมีดังนี้
| ตัวระบุคุณสมบัติการเปลี่ยนรุ่น | คำอธิบาย |
|---|---|
| "client_redirect" | เกิดการเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจาก JavaScript หรือเมตาแท็กรีเฟรชในหน้าระหว่างการนําทาง |
| "server_redirect" | เกิดการเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจากส่วนหัว HTTP ที่ส่งจากเซิร์ฟเวอร์ระหว่างการนำทาง |
| "forward_back" | ผู้ใช้ใช้ปุ่มไปข้างหน้าหรือปุ่มย้อนกลับเพื่อเริ่มการนําทาง |
| "from_address_bar" | ผู้ใช้เริ่มการนำทางจากแถบที่อยู่ (หรือที่เรียกว่าแถบอเนกประสงค์) |
ตัวอย่าง
หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง webNavigation API จากที่เก็บ chrome-extension-samples
ประเภท
TransitionQualifier
ค่าแจกแจง
"client_redirect"
"server_redirect"
"forward_back"
"from_address_bar"
TransitionType
สาเหตุของการนำทาง ระบบจะใช้ประเภทการเปลี่ยนผ่านเดียวกันกับที่กำหนดไว้ใน History API ประเภทการเปลี่ยนเหล่านี้เหมือนกับที่กำหนดไว้ใน history API ยกเว้น "start_page" แทนที่ "auto_toplevel" (เพื่อความเข้ากันได้แบบย้อนหลัง)
ค่าแจกแจง
"link"
"typed"
"auto_bookmark"
"auto_subframe"
"manual_subframe"
"generated"
"start_page"
"form_submit"
"reload"
"คีย์เวิร์ด"
"keyword_generated"
เมธอด
getAllFrames()
browser.webNavigation.getAllFrames(
details: object,
): Promise<object[] | undefined>
เรียกดูข้อมูลเกี่ยวกับเฟรมทั้งหมดของแท็บที่ระบุ
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
ข้อมูลเกี่ยวกับแท็บที่จะดึงเฟรมทั้งหมดมา
-
tabId
ตัวเลข
รหัสของแท็บ
-
การคืนสินค้า
-
Promise<object[] | undefined>
Chrome 93 ขึ้นไป browser.* ตั้งแต่ Chrome 148
getFrame()
browser.webNavigation.getFrame(
details: object,
): Promise<object | undefined>
เรียกดูข้อมูลเกี่ยวกับเฟรมที่ระบุ เฟรมหมายถึง <iframe> หรือ <frame> ของหน้าเว็บ และระบุด้วยรหัสแท็บและรหัสเฟรม
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
ข้อมูลเกี่ยวกับเฟรมที่จะดึงข้อมูล
-
documentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสาร หากมีการระบุ frameId และ/หรือ tabId ระบบจะตรวจสอบความถูกต้องเพื่อให้ตรงกับเอกสารที่พบตามรหัสเอกสารที่ระบุ
-
frameId
number ไม่บังคับ
รหัสของเฟรมในแท็บที่ระบุ
-
processId
number ไม่บังคับ
เลิกใช้งานตั้งแต่ Chrome 49ตอนนี้เฟรมจะได้รับการระบุโดยไม่ซ้ำกันด้วยรหัสแท็บและรหัสเฟรม โดยไม่จำเป็นต้องใช้รหัสกระบวนการอีกต่อไปและจะถูกละเว้น
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับแท็บนี้
-
tabId
number ไม่บังคับ
รหัสของแท็บที่มีเฟรมอยู่
-
การคืนสินค้า
-
Promise<object | undefined>
Chrome 93 ขึ้นไป browser.* ตั้งแต่ Chrome 148
กิจกรรม
onBeforeNavigate
browser.webNavigation.onBeforeNavigate.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อกำลังจะเกิดการนำทาง
พารามิเตอร์
-
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
ออบเจ็กต์
-
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันสำหรับแท็บและกระบวนการหนึ่งๆ
-
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
ตัวเลข
รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
ตัวเลข
เลิกใช้งานตั้งแต่ Chrome 50ระบบไม่ได้ตั้งค่า processId สำหรับเหตุการณ์นี้อีกต่อไป เนื่องจากไม่ทราบกระบวนการที่จะแสดงผลเอกสารผลลัพธ์จนกว่าจะถึง onCommit
ค่า -1
-
ตัวเลข
รหัสของแท็บที่กำลังจะมีการไปยังส่วนต่างๆ
-
ตัวเลข
เวลาที่เบราว์เซอร์กำลังจะเริ่มการนำทาง หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
สตริง
-
-
-
object ไม่บังคับ
-
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onCommitted
browser.webNavigation.onCommitted.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการคอมมิตการนำทาง เอกสาร (และทรัพยากรที่เอกสารอ้างอิง เช่น รูปภาพและเฟรมย่อย) อาจยังคงดาวน์โหลดอยู่ แต่ได้รับเอกสารบางส่วนจากเซิร์ฟเวอร์แล้ว และเบราว์เซอร์ได้ตัดสินใจเปลี่ยนไปใช้เอกสารใหม่
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่คอมมิตการนําทาง หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
transitionQualifiers
รายการตัวระบุคุณสมบัติการเปลี่ยนรุ่น
-
transitionType
สาเหตุของการนำทาง
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onCompleted
browser.webNavigation.onCompleted.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อเอกสาร รวมถึงทรัพยากรที่อ้างอิงถึง โหลดและเริ่มต้นอย่างสมบูรณ์
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่เอกสารโหลดเสร็จ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onCreatedNavigationTarget
browser.webNavigation.onCreatedNavigationTarget.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการสร้างหน้าต่างใหม่หรือแท็บใหม่ในหน้าต่างที่มีอยู่เพื่อโฮสต์การนําทาง
พารามิเตอร์
-
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
ออบเจ็กต์
-
ตัวเลข
รหัสของเฟรมที่มี sourceTabId ซึ่งมีการทริกเกอร์การนำทาง 0 หมายถึงเฟรมหลัก
-
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมต้นทาง
-
ตัวเลข
รหัสของแท็บที่มีการทริกเกอร์การไปยังส่วนต่างๆ
-
ตัวเลข
รหัสของแท็บที่เปิด URL
-
ตัวเลข
เวลาที่เบราว์เซอร์กำลังจะสร้างมุมมองใหม่ โดยมีหน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
สตริง
URL ที่จะเปิดในหน้าต่างใหม่
-
-
-
object ไม่บังคับ
-
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onDOMContentLoaded
browser.webNavigation.onDOMContentLoaded.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อสร้าง DOM ของหน้าเว็บเสร็จสมบูรณ์แล้ว แต่ทรัพยากรที่อ้างอิงอาจยังโหลดไม่เสร็จ
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่สร้าง DOM ของหน้าเว็บเสร็จสมบูรณ์ โดยมีหน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onErrorOccurred
browser.webNavigation.onErrorOccurred.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อเกิดข้อผิดพลาดและการนำทางถูกยกเลิก กรณีนี้อาจเกิดขึ้นหากเกิดข้อผิดพลาดเกี่ยวกับเครือข่าย หรือผู้ใช้ยกเลิกการนําทาง
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
ข้อผิดพลาด
สตริง
คำอธิบายข้อผิดพลาด
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
เลิกใช้งานตั้งแต่ Chrome 50ไม่มีการตั้งค่า processId สำหรับเหตุการณ์นี้อีกต่อไป
ค่า -1
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่เกิดข้อผิดพลาดในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onHistoryStateUpdated
browser.webNavigation.onHistoryStateUpdated.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อประวัติของเฟรมได้รับการอัปเดตเป็น URL ใหม่ เหตุการณ์ในอนาคตทั้งหมดสำหรับเฟรมนั้นจะใช้ URL ที่อัปเดตแล้ว
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่คอมมิตการนําทาง หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
transitionQualifiers
รายการตัวระบุคุณสมบัติการเปลี่ยนรุ่น
-
transitionType
สาเหตุของการนำทาง
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onReferenceFragmentUpdated
browser.webNavigation.onReferenceFragmentUpdated.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการอัปเดตส่วนอ้างอิงของเฟรม เหตุการณ์ในอนาคตทั้งหมดสำหรับเฟรมนั้นจะใช้ URL ที่อัปเดตแล้ว
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารที่โหลด
-
documentLifecycleChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
วงจรที่เอกสารอยู่
-
frameId
ตัวเลข
0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ
-
frameTypeChrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148
ประเภทของเฟรมที่เกิดการนำทาง
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไป browser.* ตั้งแต่ Chrome 148UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีพร็อพเพอร์ตี้หลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไป browser.* ตั้งแต่ Chrome 148รหัสของเฟรมหลัก หรือ
-1หากเป็นเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการไปยังส่วนต่างๆ
-
timeStamp
ตัวเลข
เวลาที่คอมมิตการนําทาง หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
transitionQualifiers
รายการตัวระบุคุณสมบัติการเปลี่ยนรุ่น
-
transitionType
สาเหตุของการนำทาง
-
URL
สตริง
-
-
-
ตัวกรอง
object ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม
-
onTabReplaced
browser.webNavigation.onTabReplaced.addListener(
callback: function,
)
เริ่มทำงานเมื่อเนื้อหาของแท็บถูกแทนที่ด้วยแท็บอื่น (โดยปกติจะเป็นแท็บที่แสดงผลล่วงหน้าก่อนหน้านี้)
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
replacedTabId
ตัวเลข
รหัสของแท็บที่ถูกแทนที่
-
tabId
ตัวเลข
รหัสของแท็บที่แทนที่แท็บเก่า
-
timeStamp
ตัวเลข
เวลาที่เกิดการแทนที่ โดยนับเป็นมิลลิวินาทีตั้งแต่ Epoch
-
-