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