chrome.webNavigation

คำอธิบาย

ใช้ chrome.webNavigation API เพื่อรับการแจ้งเตือนเกี่ยวกับสถานะของคำขอการนำทางระหว่างการเดินทาง

สิทธิ์

webNavigation

ไฟล์ Manifest

chrome.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 ค้นหาทันใจ หรือ Instant Pages ระบบจะสลับหน้าเว็บที่โหลดเสร็จสมบูรณ์ไปยังแท็บปัจจุบัน ในกรณีนี้ ระบบจะทริกเกอร์เหตุการณ์ onTabReplaced

ความสัมพันธ์กับเหตุการณ์ webRequest

ไม่มีการกำหนดลำดับระหว่างเหตุการณ์ของ webRequest API กับเหตุการณ์ของ webNavigation API เป็นไปได้ว่าเหตุการณ์ webRequest จะยังคงได้รับสำหรับเฟรมที่เริ่มการนำทางใหม่แล้ว หรือการนำทางจะดำเนินการต่อหลังจากที่โหลดทรัพยากรเครือข่ายเสร็จสมบูรณ์แล้วเท่านั้น

โดยทั่วไป เหตุการณ์ webNavigation จะเกี่ยวข้องอย่างใกล้ชิดกับสถานะการนำทางที่แสดง ใน UI ขณะที่เหตุการณ์ webRequest จะสอดคล้องกับสถานะของสแต็กเครือข่ายซึ่งโดยทั่วไป ผู้ใช้จะมองไม่เห็น

รหัสแท็บ

แท็บที่นำทางบางแท็บอาจไม่ตรงกับแท็บจริงใน UI ของ Chrome เช่น แท็บที่กำลัง แสดงผลล่วงหน้า คุณไม่สามารถเข้าถึงแท็บดังกล่าวผ่าน Tabs API หรือขอข้อมูลเกี่ยวกับแท็บเหล่านั้นผ่าน webNavigation.getFrame หรือ webNavigation.getAllFrames ได้ เมื่อมีการสลับแท็บดังกล่าว ระบบจะทริกเกอร์เหตุการณ์ onTabReplaced และจะเข้าถึงแท็บผ่าน API เหล่านี้ได้

การประทับเวลา

โปรดทราบว่าความผิดปกติทางเทคนิคบางอย่างในการจัดการกระบวนการ Chrome ที่แตกต่างกันของระบบปฏิบัติการอาจทำให้เวลาในเบราว์เซอร์เองและกระบวนการของส่วนขยายไม่ตรงกัน ซึ่งหมายความว่าพร็อพเพอร์ตี้ timeStamp ของเหตุการณ์ WebNavigation จะรับประกันได้ว่าภายใน จะสอดคล้องกันเท่านั้น การเปรียบเทียบเหตุการณ์หนึ่งกับอีกเหตุการณ์หนึ่งจะทําให้คุณทราบออฟเซ็ตที่ถูกต้องระหว่างเหตุการณ์เหล่านั้น แต่ การเปรียบเทียบกับเวลาปัจจุบันภายในส่วนขยาย (เช่น ผ่าน (new Date()).getTime()) อาจทําให้ได้ผลลัพธ์ที่ไม่คาดคิด

รหัสเฟรม

คุณระบุเฟรมภายในแท็บได้โดยใช้รหัสเฟรม รหัสเฟรมของเฟรมหลักจะเป็น 0 เสมอ ส่วนรหัสของเฟรมย่อยจะเป็นจำนวนบวก เมื่อสร้างเอกสารในเฟรมแล้ว รหัสเฟรมของเอกสาร จะยังคงเดิมตลอดอายุการใช้งานของเอกสาร ตั้งแต่ Chrome 49 เป็นต้นมา รหัสนี้จะคงที่ตลอดอายุการใช้งานของเฟรม (ในการนำทางหลายครั้ง)

เนื่องจากลักษณะการทำงานแบบหลายกระบวนการของ Chrome แท็บอาจใช้กระบวนการที่แตกต่างกันในการแสดงผลแหล่งที่มา และปลายทางของหน้าเว็บ ดังนั้น หากการนำทางเกิดขึ้นในกระบวนการใหม่ คุณอาจได้รับเหตุการณ์จากทั้งหน้าใหม่และหน้าเก่าจนกว่าจะมีการนำทางการนำทางใหม่ (กล่าวคือ ระบบจะส่งเหตุการณ์ onCommitted สำหรับเฟรมหลักใหม่) กล่าวคือ คุณอาจมีลำดับเหตุการณ์ webNavigation ที่รอดำเนินการมากกว่า 1 รายการที่มี frameId เดียวกัน โดยคุณจะแยกแยะลำดับได้ด้วยprocessId

นอกจากนี้ โปรดทราบว่าในระหว่างการโหลดชั่วคราว ระบบอาจสลับกระบวนการหลายครั้ง ซึ่งจะเกิดขึ้นเมื่อมีการเปลี่ยนเส้นทางการโหลดไปยังเว็บไซต์อื่น ในกรณีนี้ คุณจะได้รับเหตุการณ์ onBeforeNavigate และ onErrorOccurred ซ้ำๆ จนกว่าจะได้รับเหตุการณ์ onCommitted สุดท้าย

อีกแนวคิดหนึ่งที่ทำให้เกิดปัญหาเกี่ยวกับส่วนขยายคือวงจรของเฟรม เฟรมจะโฮสต์เอกสาร (ซึ่งเชื่อมโยงกับ URL ที่คอมมิตแล้ว) เอกสารอาจเปลี่ยนแปลงได้ (เช่น โดยการไปยังส่วนต่างๆ) แต่ frameId จะไม่เปลี่ยนแปลง ดังนั้นจึงเชื่อมโยงเหตุการณ์ที่เกิดขึ้นในเอกสารหนึ่งๆ กับ frameId เพียงอย่างเดียวได้ยาก เราขอแนะนำแนวคิดของ documentId ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันต่อเอกสาร หากมีการไปยังเฟรมและเปิด เอกสารใหม่ ตัวระบุจะเปลี่ยนไป ฟิลด์นี้มีประโยชน์ในการพิจารณา เมื่อหน้าเว็บเปลี่ยนสถานะวงจร (ระหว่างสถานะแสดงตัวอย่าง/ใช้งานอยู่/แคช) เนื่องจากยังคงเหมือนเดิม

ประเภทการเปลี่ยนและตัวระบุ

เหตุการณ์ onCommitted ของ WebNavigation API มีพร็อพเพอร์ตี้ transitionType และ transitionQualifiers ประเภทการเปลี่ยนเส้นทางจะเหมือนกับที่ใช้ใน History API ซึ่งอธิบายวิธีที่เบราว์เซอร์ไปยัง URL นี้ โดยเฉพาะ นอกจากนี้ ยังมีตัวระบุการเปลี่ยนผ่านหลายรายการที่สามารถแสดงผลเพื่อกำหนดการนำทางเพิ่มเติมได้

โดยมีคุณสมบัติในการเปลี่ยนผ่านดังนี้

ตัวระบุการเปลี่ยนผ่านคำอธิบาย
"client_redirect"การเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจากแท็ก JavaScript หรือแท็กการรีเฟรชเมตาในหน้าเว็บเกิดขึ้นระหว่างการนำทาง
"server_redirect"การเปลี่ยนเส้นทางอย่างน้อย 1 รายการที่เกิดจากส่วนหัว HTTP ที่ส่งจากเซิร์ฟเวอร์เกิดขึ้นระหว่างการนำทาง
"forward_back"ผู้ใช้ใช้ปุ่มไปข้างหน้าหรือปุ่มย้อนกลับเพื่อเริ่มการไปยังส่วนต่างๆ
"from_address_bar"ผู้ใช้เริ่มการไปยังส่วนต่างๆ จากแถบที่อยู่ (หรือที่เรียกว่าแถบอเนกประสงค์)

ตัวอย่าง

หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง API ของ webNavigation จากที่เก็บ chrome-extension-samples

ประเภท

TransitionQualifier

Chrome 44 ขึ้นไป

ค่าแจกแจง

"client_redirect"

"server_redirect"

"forward_back"

"from_address_bar"

TransitionType

Chrome 44 ขึ้นไป

สาเหตุของการนำทาง ใช้ประเภทการเปลี่ยนผ่านเดียวกันกับที่กำหนดไว้ใน History API ซึ่งเป็นประเภทการเปลี่ยนเส้นทางเดียวกันกับที่กำหนดไว้ใน History API ยกเว้นมี "start_page" แทน "auto_toplevel" (เพื่อให้เข้ากันได้แบบย้อนหลัง)

ค่าแจกแจง

"link"

"typed"

"auto_bookmark"

"auto_subframe"

"manual_subframe"

"สร้างขึ้น"

"start_page"

"form_submit"

"โหลดซ้ำ"

"คีย์เวิร์ด"

"keyword_generated"

เมธอด

getAllFrames()

Promise
chrome.webNavigation.getAllFrames(
  details: object,
  callback?: function,
)
: Promise<object[] | undefined>

เรียกข้อมูลเกี่ยวกับเฟรมทั้งหมดของแท็บที่ระบุ

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    ข้อมูลเกี่ยวกับแท็บที่จะดึงเฟรมทั้งหมดจาก

    • tabId

      ตัวเลข

      รหัสของแท็บ

  • callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details?: object[]) => void

    • รายละเอียด

      object[] ไม่บังคับ

      รายการเฟรมในแท็บที่ระบุ หรือ null หากรหัสแท็บที่ระบุไม่ถูกต้อง

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • documentLifecycle
        Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • errorOccurred

        บูลีน

        เป็นจริงหากการนำทางครั้งล่าสุดในเฟรมนี้ถูกขัดจังหวะเนื่องจากข้อผิดพลาด เช่น เหตุการณ์ onErrorOccurred ทำงาน

      • frameId

        ตัวเลข

        รหัสของเฟรม 0 หมายความว่านี่คือเฟรมหลัก ส่วนค่าบวกหมายถึงรหัสของเฟรมย่อย

      • frameType
        Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • URL

        สตริง

        URL ที่เชื่อมโยงกับเฟรมนี้ในปัจจุบัน

การคืนสินค้า

  • Promise<object[] | undefined>

    Chrome 93 ขึ้นไป

    ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

getFrame()

Promise
chrome.webNavigation.getFrame(
  details: object,
  callback?: function,
)
: Promise<object | undefined>

เรียกข้อมูลเกี่ยวกับเฟรมที่ระบุ เฟรมหมายถึง <iframe> หรือ <frame> ของหน้าเว็บ และระบุด้วยรหัสแท็บและรหัสเฟรม

พารามิเตอร์

  • รายละเอียด

    ออบเจ็กต์

    ข้อมูลเกี่ยวกับเฟรมที่จะดึงข้อมูล

    • documentId

      สตริง ไม่บังคับ

      Chrome 106 ขึ้นไป

      UUID ของเอกสาร หากมีการระบุ frameId และ/หรือ tabId ระบบจะตรวจสอบว่าตรงกับเอกสารที่พบตามรหัสเอกสารที่ระบุหรือไม่

    • frameId

      หมายเลข ไม่บังคับ

      รหัสของเฟรมในแท็บที่ระบุ

    • processId

      หมายเลข ไม่บังคับ

      เลิกใช้งานตั้งแต่ Chrome 49

      ตอนนี้เฟรมจะระบุค่าเฉพาะด้วยรหัสแท็บและรหัสเฟรม ไม่จำเป็นต้องใช้รหัสกระบวนการอีกต่อไปและระบบจะละเว้นรหัสกระบวนการ

      รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับแท็บนี้

    • tabId

      หมายเลข ไม่บังคับ

      รหัสของแท็บที่มีเฟรม

  • callback

    ฟังก์ชัน ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details?: object) => void

    • รายละเอียด

      ออบเจ็กต์ ไม่บังคับ

      ข้อมูลเกี่ยวกับเฟรมที่ขอ หรือ null หากรหัสเฟรมและ/หรือรหัสแท็บที่ระบุไม่ถูกต้อง

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • documentLifecycle
        Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • errorOccurred

        บูลีน

        เป็นจริงหากการนำทางครั้งล่าสุดในเฟรมนี้ถูกขัดจังหวะเนื่องจากข้อผิดพลาด เช่น เหตุการณ์ onErrorOccurred ทำงาน

      • frameType
        Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • URL

        สตริง

        URL ที่เชื่อมโยงกับเฟรมนี้ในปัจจุบัน หากเฟรมที่ระบุโดย frameId เคยมีอยู่ในแท็บที่ระบุ การที่ URL เชื่อมโยงกับ frameId ที่ระบุไม่ได้หมายความว่าเฟรมที่เกี่ยวข้องยังคงมีอยู่

การคืนสินค้า

  • Promise<object | undefined>

    Chrome 93 ขึ้นไป

    ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

onBeforeNavigate

chrome.webNavigation.onBeforeNavigate.addListener(
  callback: function,
  filters?: object,
)

เริ่มทำงานเมื่อกำลังจะเกิดการนำทาง

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันสำหรับแท็บและกระบวนการที่กำหนด

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        เลิกใช้งานตั้งแต่ Chrome 50

        ระบบจะไม่ตั้งค่า processId สำหรับเหตุการณ์นี้อีกต่อไป เนื่องจากไม่ทราบกระบวนการที่จะแสดงเอกสารผลลัพธ์จนกว่าจะถึง onCommit

        ค่า -1

      • tabId

        ตัวเลข

        รหัสของแท็บที่จะเกิดการนำทาง

      • timeStamp

        ตัวเลข

        เวลาที่เบราว์เซอร์กำลังจะเริ่มการนำทาง หน่วยเป็นมิลลิวินาทีนับตั้งแต่ Epoch

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onCommitted

chrome.webNavigation.onCommitted.addListener(
  callback: function,
  filters?: object,
)

เริ่มทำงานเมื่อมีการนำทาง เอกสาร (และทรัพยากรที่เอกสารอ้างอิงถึง เช่น รูปภาพและเฟรมย่อย) อาจยังคงดาวน์โหลดอยู่ แต่ระบบได้รับเอกสารอย่างน้อยบางส่วนจากเซิร์ฟเวอร์แล้ว และเบราว์เซอร์ตัดสินใจเปลี่ยนไปใช้เอกสารใหม่

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่การนำทางได้รับการยืนยัน หน่วยเป็นมิลลิวินาทีนับตั้งแต่เริ่มต้น

      • transitionQualifiers

        รายการตัวระบุการเปลี่ยน

      • transitionType

        สาเหตุของการนำทาง

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onCompleted

chrome.webNavigation.onCompleted.addListener(
  callback: function,
  filters?: object,
)

ทริกเกอร์เมื่อเอกสารรวมถึงทรัพยากรที่เอกสารอ้างอิงโหลดและเริ่มต้นอย่างสมบูรณ์

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่เอกสารโหลดเสร็จสมบูรณ์ หน่วยเป็นมิลลิวินาทีที่เริ่มนับมาตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onCreatedNavigationTarget

chrome.webNavigation.onCreatedNavigationTarget.addListener(
  callback: function,
  filters?: object,
)

ทริกเกอร์เมื่อมีการสร้างหน้าต่างใหม่หรือแท็บใหม่ในหน้าต่างที่มีอยู่เพื่อโฮสต์การนำทาง

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • sourceFrameId

        ตัวเลข

        รหัสของเฟรมที่มี sourceTabId ซึ่งทริกเกอร์การนำทาง 0 หมายถึงเฟรมหลัก

      • sourceProcessId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมต้นทาง

      • sourceTabId

        ตัวเลข

        รหัสของแท็บที่มีการทริกเกอร์การนำทาง

      • tabId

        ตัวเลข

        รหัสของแท็บที่เปิด URL

      • timeStamp

        ตัวเลข

        เวลาที่เบราว์เซอร์กำลังจะสร้างมุมมองใหม่เป็นมิลลิวินาทีตั้งแต่ Epoch

      • URL

        สตริง

        URL ที่จะเปิดในหน้าต่างใหม่

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onDOMContentLoaded

chrome.webNavigation.onDOMContentLoaded.addListener(
  callback: function,
  filters?: object,
)

ทริกเกอร์เมื่อสร้าง DOM ของหน้าเว็บเสร็จสมบูรณ์แล้ว แต่ทรัพยากรที่อ้างอิงอาจโหลดไม่เสร็จ

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่สร้าง DOM ของหน้าเว็บอย่างสมบูรณ์แล้วเป็นมิลลิวินาทีตั้งแต่ Epoch

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onErrorOccurred

chrome.webNavigation.onErrorOccurred.addListener(
  callback: function,
  filters?: object,
)

เริ่มทำงานเมื่อเกิดข้อผิดพลาดและยกเลิกการนำทาง ซึ่งอาจเกิดขึ้นหากเกิดข้อผิดพลาดเกี่ยวกับเครือข่าย หรือผู้ใช้ยกเลิกการไปยังส่วนต่างๆ

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • ข้อผิดพลาด

        สตริง

        คำอธิบายข้อผิดพลาด

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        เลิกใช้งานตั้งแต่ Chrome 50

        ระบบจะไม่ตั้งค่า processId สำหรับเหตุการณ์นี้อีกต่อไป

        ค่า -1

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่เกิดข้อผิดพลาดในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onHistoryStateUpdated

chrome.webNavigation.onHistoryStateUpdated.addListener(
  callback: function,
  filters?: object,
)

ทริกเกอร์เมื่อประวัติของเฟรมได้รับการอัปเดตเป็น URL ใหม่ กิจกรรมในอนาคตทั้งหมดสำหรับเฟรมนั้นจะใช้ URL ที่อัปเดต

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่การนำทางได้รับการยืนยัน หน่วยเป็นมิลลิวินาทีนับตั้งแต่เริ่มต้น

      • transitionQualifiers

        รายการตัวระบุการเปลี่ยน

      • transitionType

        สาเหตุของการนำทาง

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onReferenceFragmentUpdated

chrome.webNavigation.onReferenceFragmentUpdated.addListener(
  callback: function,
  filters?: object,
)

เริ่มทำงานเมื่อมีการอัปเดต Fragment อ้างอิงของเฟรม กิจกรรมในอนาคตทั้งหมดสำหรับเฟรมนั้นจะใช้ URL ที่อัปเดต

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่โหลด

      • Chrome 106 ขึ้นไป

        วงจรการใช้งานของเอกสาร

      • frameId

        ตัวเลข

        0 หมายความว่าการนำทางเกิดขึ้นในหน้าต่างเนื้อหาของแท็บ ส่วนค่าบวกหมายความว่าการนำทางเกิดขึ้นในเฟรมย่อย รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดการนำทาง

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากเป็นเฟรมหลัก

      • processId

        ตัวเลข

        รหัสของกระบวนการที่เรียกใช้โปรแกรมแสดงผลสำหรับเฟรมนี้

      • tabId

        ตัวเลข

        รหัสของแท็บที่มีการไปยังส่วนต่างๆ

      • timeStamp

        ตัวเลข

        เวลาที่การนำทางได้รับการยืนยัน หน่วยเป็นมิลลิวินาทีนับตั้งแต่เริ่มต้น

      • transitionQualifiers

        รายการตัวระบุการเปลี่ยน

      • transitionType

        สาเหตุของการนำทาง

      • URL

        สตริง

  • ตัวกรอง

    ออบเจ็กต์ ไม่บังคับ

    • เงื่อนไขที่ URL ที่กำลังไปยังต้องเป็นไปตาม ระบบจะไม่สนใจฟิลด์ "schemes" และ "ports" ของ UrlFilter สำหรับเหตุการณ์นี้

onTabReplaced

chrome.webNavigation.onTabReplaced.addListener(
  callback: function,
)

ทริกเกอร์เมื่อเนื้อหาของแท็บถูกแทนที่ด้วยแท็บอื่น (มักจะเป็นแท็บที่แสดงผลล่วงหน้าก่อนหน้านี้)

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • replacedTabId

        ตัวเลข

        รหัสของแท็บที่ถูกแทนที่

      • tabId

        ตัวเลข

        รหัสของแท็บที่แทนที่แท็บเก่า

      • timeStamp

        ตัวเลข

        เวลาที่เกิดการแทนที่ในหน่วยมิลลิวินาทีนับตั้งแต่ Epoch