คำอธิบาย
ใช้ 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
หากการนำทางคืนค่าหน้าจากแคชย้อนหลัง เหตุการณ์ onDOMContentLoaded
จะไม่เริ่มทำงาน เหตุการณ์ไม่ได้เริ่มทำงานเนื่องจากเนื้อหาโหลดเสร็จแล้วเมื่อหน้าเว็บ
คือการเข้าชมครั้งแรก
หากการนำทางถูกเรียกใช้โดยใช้ Chrome Instant หรือ Instant Pages ระบบจะโหลดขึ้นมาอย่างสมบูรณ์
หน้าถูกสลับไปเป็นแท็บปัจจุบัน ในกรณีดังกล่าว เหตุการณ์ onTabReplaced
จึงเริ่มทำงาน
ความเกี่ยวข้องกับเหตุการณ์ WebRequest
ไม่มีการกำหนดลำดับระหว่างเหตุการณ์ของ webRequest API และเหตุการณ์ของ webnavigation API เป็นไปได้ว่าระบบยังคงได้รับเหตุการณ์ webRequest สำหรับเฟรมที่ เริ่มการนำทางใหม่ หรือการนำทางจะดำเนินการต่อหลังจากที่ทรัพยากรเครือข่ายแล้วเท่านั้น โหลดสำเร็จแล้ว
โดยทั่วไป เหตุการณ์ web Navigation จะมีความเกี่ยวข้องกับสถานะการนำทางที่แสดงเป็นอย่างมาก ใน 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 จะไม่เปลี่ยนแปลง ดังนั้น ยากที่จะเชื่อมโยงว่าเกิดอะไรขึ้นในเอกสารบางฉบับ เพียง frameIds เราขอแนะนำแนวคิดของ documentId ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันต่อเอกสาร หากมีการนำทางในเฟรมและเปิด ตัวระบุจะเปลี่ยนแปลงไป ช่องนี้มีประโยชน์ในการระบุ เมื่อหน้าเว็บเปลี่ยนสถานะอายุการใช้งาน (ระหว่างการแสดงผลล่วงหน้า/ใช้งานอยู่/แคช) เพราะยังเหมือนเดิม
ประเภทและตัวระบุสำหรับการเปลี่ยน
กิจกรรม webNavigation
onCommitted
มี transitionType
และ transitionQualifiers
ประเภทการเปลี่ยนจะเหมือนกับที่ใช้ใน API ประวัติซึ่งอธิบายวิธีที่
ที่ไปยัง URL เฉพาะนี้ นอกจากนี้ คุณยังมีตัวระบุการเปลี่ยนไปใช้หลายตัว
ที่ส่งคืนซึ่งกำหนดการนำทางเพิ่มเติม
โดยมีคุณสมบัติสำหรับการเปลี่ยนดังต่อไปนี้
ตัวระบุการเปลี่ยน | คำอธิบาย |
---|---|
"client_redirect" | การเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจากแท็ก JavaScript หรือการรีเฟรชเมตาในหน้าเว็บเกิดขึ้นระหว่างการนำทาง |
"เปลี่ยนเส้นทางเซิร์ฟเวอร์" | การเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจากส่วนหัว HTTP ที่ส่งจากเซิร์ฟเวอร์เกิดขึ้นระหว่างการนำทาง |
"Forward_back" | ผู้ใช้ใช้ปุ่มไปข้างหน้าหรือย้อนกลับเพื่อเริ่มการนำทาง |
"from_address_bar" | ผู้ใช้เริ่มการนำทางจากแถบที่อยู่ (หรือที่เรียกว่าแถบอเนกประสงค์) |
ตัวอย่าง
หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง webnavigation API จาก chrome-extension-samples ที่เก็บได้
ประเภท
TransitionQualifier
ค่าแจกแจง
"client_redirect"
"เปลี่ยนเส้นทางเซิร์ฟเวอร์"
"Forward_back"
"from_address_bar"
TransitionType
สาเหตุของการนำทาง ระบบจะใช้ประเภทการเปลี่ยนเดียวกันกับที่กําหนดไว้ใน API ประวัติ การเปลี่ยนประเภทนี้เป็นการเปลี่ยนประเภทเดียวกับที่กำหนดไว้ใน API ประวัติ ยกเว้นการใช้ "start_page"
แทน "auto_toplevel"
(สำหรับความเข้ากันได้แบบย้อนหลัง)
ค่าแจกแจง
"ลิงก์"
"typed"
"auto_bookmark"
"auto_subframe"
"manual_subframe"
"สร้าง"
"start_page"
"form_submit"
"โหลดซ้ำ"
"คีย์เวิร์ด"
"keyword_created"
เมธอด
getAllFrames()
chrome.webNavigation.getAllFrames(
details: object,
callback?: function,
)
เรียกดูข้อมูลเกี่ยวกับเฟรมทั้งหมดของแท็บที่กำหนด
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
ข้อมูลเกี่ยวกับแท็บที่ใช้เรียกดูเฟรมทั้งหมด
-
tabId
ตัวเลข
รหัสของแท็บ
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(details?: object[]) => void
-
รายละเอียด
object[] ไม่บังคับ
รายการเฟรมในแท็บที่กำหนด เป็นค่าว่าง หากรหัสแท็บที่ระบุไม่ถูกต้อง
-
documentId
สตริง
Chrome 106 ขึ้นไปโหลด UUID ของเอกสารแล้ว
-
documentLifecycleChrome 106 ขึ้นไป
อายุการใช้งานของเอกสาร
-
errorOccurred
boolean
เป็นจริงหากการนำทางสุดท้ายในเฟรมนี้ถูกขัดจังหวะโดยข้อผิดพลาด เช่น เหตุการณ์ onErrorOccurred เริ่มทำงานแล้ว
-
frameId
ตัวเลข
รหัสของเฟรม 0 หมายความว่านี่เป็นเฟรมหลัก ค่าบวกจะระบุรหัสของเฟรมย่อย
-
frameTypeChrome 106 ขึ้นไป
ประเภทของเฟรมที่มีการนำทาง
-
parentDocumentId
string ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารระดับบนสุดที่เป็นเจ้าของเฟรมนี้ ทั้งนี้จะไม่มีการตั้งค่านี้หากไม่มีการตั้งค่าระดับบนสุด
-
parentFrameId
ตัวเลข
รหัสของเฟรมหลัก หรือ
-1
หากนี่คือเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้ตัวแสดงผลสำหรับเฟรมนี้
-
URL
สตริง
URL ที่เชื่อมโยงกับเฟรมนี้ในปัจจุบัน
-
-
การคืนสินค้า
-
Promise<object[] | ไม่ระบุ>
Chrome 93 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
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
สตริง
Chrome 106 ขึ้นไปโหลด UUID ของเอกสารแล้ว
-
documentLifecycleChrome 106 ขึ้นไป
อายุการใช้งานของเอกสาร
-
errorOccurred
boolean
เป็นจริงหากการนำทางสุดท้ายในเฟรมนี้ถูกขัดจังหวะโดยข้อผิดพลาด เช่น เหตุการณ์ onErrorOccurred เริ่มทำงานแล้ว
-
frameTypeChrome 106 ขึ้นไป
ประเภทของเฟรมที่มีการนำทาง
-
parentDocumentId
string ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารระดับบนสุดที่เป็นเจ้าของเฟรมนี้ ทั้งนี้จะไม่มีการตั้งค่านี้หากไม่มีการตั้งค่าระดับบนสุด
-
parentFrameId
ตัวเลข
รหัสของเฟรมหลัก หรือ
-1
หากนี่คือเฟรมหลัก -
URL
สตริง
URL ปัจจุบันที่เชื่อมโยงกับเฟรมนี้ หากเฟรมที่ระบุโดย frameId มีอยู่ที่จุดหนึ่งในแท็บที่กำหนด การที่ URL เชื่อมโยงกับ frameId หนึ่งๆ ไม่ได้บอกเป็นนัยว่าเฟรมที่เกี่ยวข้องนั้นยังคงอยู่
-
-
การคืนสินค้า
-
Promise<object | ไม่ระบุ>
Chrome 93 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
กิจกรรม
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
-
สตริง
-
-
-
ออบเจ็กต์ไม่บังคับ
-
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onCommitted
chrome.webNavigation.onCommitted.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการคอมมิตการนำทาง เอกสาร (และแหล่งข้อมูลที่อ้างอิงถึง เช่น ภาพและเฟรมย่อย) อาจยังอยู่ในระหว่างการดาวน์โหลด แต่อย่างน้อยบางส่วนของเอกสารได้รับมาจากเซิร์ฟเวอร์ และเบราว์เซอร์ได้ตัดสินใจสลับไปยังเอกสารใหม่
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
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
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onCompleted
chrome.webNavigation.onCompleted.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อเอกสาร รวมถึงทรัพยากรที่อ้างถึง เสร็จสมบูรณ์และเริ่มต้นการทำงาน
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไปโหลด UUID ของเอกสารแล้ว
-
documentLifecycleChrome 106 ขึ้นไป
อายุการใช้งานของเอกสาร
-
frameId
ตัวเลข
0 หมายความว่ามีการนำทางในหน้าต่างเนื้อหาแท็บ ค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บหนึ่งๆ
-
frameTypeChrome 106 ขึ้นไป
ประเภทของเฟรมที่มีการนำทาง
-
parentDocumentId
string ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารระดับบนสุดที่เป็นเจ้าของเฟรมนี้ ทั้งนี้จะไม่มีการตั้งค่านี้หากไม่มีการตั้งค่าหลัก
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไปรหัสของเฟรมหลัก หรือ
-1
หากนี่คือเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้ตัวแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการนำทาง
-
timeStamp
ตัวเลข
เวลาที่เอกสารโหลดเสร็จ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onCreatedNavigationTarget
chrome.webNavigation.onCreatedNavigationTarget.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการสร้างหน้าต่างใหม่หรือแท็บใหม่ในหน้าต่างที่มีอยู่เพื่อโฮสต์การนำทาง
พารามิเตอร์
-
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
ออบเจ็กต์
-
ตัวเลข
รหัสของเฟรมที่มี sourceTabId เมื่อมีการทริกเกอร์การนำทาง 0 หมายถึงเฟรมหลัก
-
ตัวเลข
รหัสของกระบวนการที่เรียกใช้ตัวแสดงผลสำหรับเฟรมต้นทาง
-
ตัวเลข
รหัสของแท็บที่มีการทริกเกอร์การนำทาง
-
ตัวเลข
รหัสของแท็บที่มีการเปิด URL
-
ตัวเลข
เวลาที่เบราว์เซอร์กำลังจะสร้างข้อมูลพร็อพเพอร์ตี้ใหม่ หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
สตริง
URL ที่จะเปิดในหน้าต่างใหม่
-
-
-
ออบเจ็กต์ไม่บังคับ
-
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onDOMContentLoaded
chrome.webNavigation.onDOMContentLoaded.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการสร้าง DOM ของหน้าเว็บอย่างสมบูรณ์ แต่ทรัพยากรที่ใช้อ้างอิงอาจโหลดไม่เสร็จสิ้น
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไปโหลด UUID ของเอกสารแล้ว
-
documentLifecycleChrome 106 ขึ้นไป
อายุการใช้งานของเอกสาร
-
frameId
ตัวเลข
0 หมายความว่ามีการนำทางในหน้าต่างเนื้อหาแท็บ ค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บหนึ่งๆ
-
frameTypeChrome 106 ขึ้นไป
ประเภทของเฟรมที่มีการนำทาง
-
parentDocumentId
string ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารระดับบนสุดที่เป็นเจ้าของเฟรมนี้ ทั้งนี้จะไม่มีการตั้งค่านี้หากไม่มีการตั้งค่าระดับบนสุด
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไปรหัสของเฟรมหลัก หรือ
-1
หากนี่คือเฟรมหลัก -
processId
ตัวเลข
รหัสของกระบวนการที่เรียกใช้ตัวแสดงผลสำหรับเฟรมนี้
-
tabId
ตัวเลข
รหัสของแท็บที่มีการนำทาง
-
timeStamp
ตัวเลข
เวลาที่สร้าง DOM ของหน้าเว็บโดยสมบูรณ์ในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onErrorOccurred
chrome.webNavigation.onErrorOccurred.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อเกิดข้อผิดพลาดและล้มเลิกการนำทาง ซึ่งอาจเกิดขึ้นได้หากเครือข่ายเกิดข้อผิดพลาด หรือผู้ใช้ล้มเลิกการนำทาง
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
Chrome 106 ขึ้นไปโหลด UUID ของเอกสารแล้ว
-
documentLifecycleChrome 106 ขึ้นไป
อายุการใช้งานของเอกสาร
-
ข้อผิดพลาด
สตริง
คำอธิบายข้อผิดพลาด
-
frameId
ตัวเลข
0 หมายความว่ามีการนำทางในหน้าต่างเนื้อหาแท็บ ค่าบวกหมายถึงการนำทางในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บหนึ่งๆ
-
frameTypeChrome 106 ขึ้นไป
ประเภทของเฟรมที่มีการนำทาง
-
parentDocumentId
string ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารระดับบนสุดที่เป็นเจ้าของเฟรมนี้ ทั้งนี้จะไม่มีการตั้งค่านี้หากไม่มีการตั้งค่าระดับบนสุด
-
parentFrameId
ตัวเลข
Chrome 74 ขึ้นไปรหัสของเฟรมหลัก หรือ
-1
หากนี่คือเฟรมหลัก -
processId
ตัวเลข
เลิกใช้งานตั้งแต่ Chrome 50ไม่ได้ตั้งค่าProcessId สำหรับกิจกรรมนี้อีกต่อไป
ค่าของ -1
-
tabId
ตัวเลข
รหัสของแท็บที่มีการนำทาง
-
timeStamp
ตัวเลข
เวลาที่เกิดข้อผิดพลาด หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
URL
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onHistoryStateUpdated
chrome.webNavigation.onHistoryStateUpdated.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่อมีการอัปเดตประวัติของเฟรมเป็น URL ใหม่ กิจกรรมในอนาคตทั้งหมดสำหรับเฟรมนี้จะใช้ URL ที่อัปเดต
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
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
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onReferenceFragmentUpdated
chrome.webNavigation.onReferenceFragmentUpdated.addListener(
callback: function,
filters?: object,
)
เริ่มทำงานเมื่ออัปเดตส่วนย่อยอ้างอิงของเฟรม กิจกรรมในอนาคตทั้งหมดสำหรับเฟรมนี้จะใช้ URL ที่อัปเดต
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
documentId
สตริง
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
สตริง
-
-
-
ตัวกรอง
ออบเจ็กต์ไม่บังคับ
-
URL
เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้
-
onTabReplaced
chrome.webNavigation.onTabReplaced.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการแทนที่เนื้อหาในแท็บด้วยแท็บอื่น (โดยปกติแล้วจะแสดงผลล่วงหน้า)
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
replacedTabId
ตัวเลข
รหัสของแท็บที่ถูกแทนที่
-
tabId
ตัวเลข
รหัสของแท็บที่แทนที่แท็บเดิม
-
timeStamp
ตัวเลข
เวลาที่เกิดการแทนที่ หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch
-
-