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 แล้วก็ตาม

หากมีการใช้ 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 ที่แตกต่างกันของระบบปฏิบัติการ กระบวนการต่างๆ สามารถทำให้เวลาของนาฬิการะหว่างเบราว์เซอร์กับกระบวนการส่วนขยายบิดเบือนได้ นั่น หมายความว่าเหตุการณ์ของ Webnavigation รับประกันว่าพร็อพเพอร์ตี้ timeStamp รายการเป็นภายในเท่านั้น มีความสม่ำเสมอ การเปรียบเทียบเหตุการณ์หนึ่งกับอีกเหตุการณ์หนึ่ง จะช่วยให้ได้ค่าชดเชยที่ถูกต้องระหว่างเหตุการณ์เหล่านั้น โดยเปรียบเทียบกับเวลาปัจจุบันภายในส่วนขยาย (เช่น ผ่าน (new Date()).getTime()) อาจให้ผลลัพธ์ที่ไม่คาดคิด

รหัสเฟรม

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

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

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

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

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

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

โดยมีคุณสมบัติสำหรับการเปลี่ยนดังต่อไปนี้

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

ตัวอย่าง

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

ประเภท

TransitionQualifier

Chrome 44 ขึ้นไป

ค่าแจกแจง

"client_redirect"

"เปลี่ยนเส้นทางเซิร์ฟเวอร์"

"Forward_back"

"from_address_bar"

TransitionType

Chrome 44 ขึ้นไป

สาเหตุของการนำทาง ระบบจะใช้ประเภทการเปลี่ยนเดียวกันกับที่กําหนดไว้ใน 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 ของเอกสารแล้ว

      • documentLifecycle
        Chrome 106 ขึ้นไป

        อายุการใช้งานของเอกสาร

      • errorOccurred

        boolean

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

      • frameId

        ตัวเลข

        รหัสของเฟรม 0 หมายความว่านี่เป็นเฟรมหลัก ค่าบวกจะระบุรหัสของเฟรมย่อย

      • frameType
        Chrome 106 ขึ้นไป

        ประเภทของเฟรมที่มีการนำทาง

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

      • URL

        สตริง

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

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

  • Promise<object[] | ไม่ระบุ>

    Chrome 93 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ 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 ของเอกสารแล้ว

      • documentLifecycle
        Chrome 106 ขึ้นไป

        อายุการใช้งานของเอกสาร

      • errorOccurred

        boolean

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

      • frameType
        Chrome 106 ขึ้นไป

        ประเภทของเฟรมที่มีการนำทาง

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • URL

        สตริง

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

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

  • Promise&lt;object | ไม่ระบุ>

    Chrome 93 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

กิจกรรม

onBeforeNavigate

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • Chrome 106 ขึ้นไป

        อายุการใช้งานของเอกสาร

      • frameId

        ตัวเลข

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

      • Chrome 106 ขึ้นไป

        ประเภทของเฟรมที่มีการนำทาง

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

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

        ค่าของ -1

      • tabId

        ตัวเลข

        รหัสของแท็บที่กำลังจะมีการนำทาง

      • timeStamp

        ตัวเลข

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

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

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • transitionQualifiers

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

      • transitionType

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

        เวลาที่เอกสารโหลดเสร็จ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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 ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

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

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

        ไม่ได้ตั้งค่าProcessId สำหรับกิจกรรมนี้อีกต่อไป

        ค่าของ -1

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง 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

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • transitionQualifiers

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

      • transitionType

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้

onReferenceFragmentUpdated

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        โหลด UUID ของเอกสารแล้ว

      • Chrome 106 ขึ้นไป

        อายุการใช้งานของเอกสาร

      • frameId

        ตัวเลข

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

      • Chrome 106 ขึ้นไป

        ประเภทของเฟรมที่มีการนำทาง

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome 74 ขึ้นไป

        รหัสของเฟรมหลัก หรือ -1 หากนี่คือเฟรมหลัก

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • transitionQualifiers

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

      • transitionType

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

      • URL

        สตริง

  • ตัวกรอง

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

    • เงื่อนไขที่ URL ที่สำรวจต้องเป็นไปตามเงื่อนไข "รูปแบบ" และ "พอร์ต" ระบบจะไม่สนใจช่อง UrlFilter สําหรับเหตุการณ์นี้

onTabReplaced

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

เริ่มทำงานเมื่อมีการแทนที่เนื้อหาในแท็บด้วยแท็บอื่น (โดยปกติแล้วจะแสดงผลล่วงหน้า)

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • replacedTabId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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