chrome.webNavigation

คำอธิบาย

ใช้ 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

Chrome 44 ขึ้นไป

ค่าแจกแจง

"forward_back"

"from_address_bar"

TransitionType

Chrome 44 ขึ้นไป

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

      • documentLifecycle
        Chrome 106 ขึ้นไป

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

      • errorOccurred

        boolean

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

      • frameId

        ตัวเลข

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

      • frameType
        Chrome 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 ของเอกสารที่โหลด

      • documentLifecycle
        Chrome 106 ขึ้นไป

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

      • errorOccurred

        boolean

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

      • frameType
        Chrome 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

    ฟังก์ชัน

    พารามิเตอร์ 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

        string

  • ตัวกรอง

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

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

onCommitted

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        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

        string

  • ตัวกรอง

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

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

onCompleted

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        Chrome 106 ขึ้นไป

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

      • Chrome 106 ขึ้นไป

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

      • frameId

        ตัวเลข

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

      • Chrome 106 ขึ้นไป

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

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome เวอร์ชัน 74 ขึ้นไป

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

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

        เวลาที่เอกสารโหลดเสร็จเป็นมิลลิวินาทีนับจาก Epoch

      • url

        string

  • ตัวกรอง

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

    • เงื่อนไขที่ 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

        string

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

  • ตัวกรอง

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

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

onDOMContentLoaded

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        Chrome 106 ขึ้นไป

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

      • Chrome 106 ขึ้นไป

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

      • frameId

        ตัวเลข

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

      • Chrome 106 ขึ้นไป

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

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome เวอร์ชัน 74 ขึ้นไป

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

      • processId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • url

        string

  • ตัวกรอง

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

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

onErrorOccurred

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        Chrome 106 ขึ้นไป

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

      • Chrome 106 ขึ้นไป

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

      • error

        string

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

      • frameId

        ตัวเลข

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

      • Chrome 106 ขึ้นไป

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

      • parentDocumentId

        string ไม่บังคับ

        Chrome 106 ขึ้นไป

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

      • parentFrameId

        ตัวเลข

        Chrome เวอร์ชัน 74 ขึ้นไป

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

      • processId

        ตัวเลข

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

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

        ค่าของ -1

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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

      • url

        string

  • ตัวกรอง

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

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

onHistoryStateUpdated

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        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

        string

  • ตัวกรอง

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

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

onReferenceFragmentUpdated

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        string

        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

        string

  • ตัวกรอง

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

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

onTabReplaced

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

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

พารามิเตอร์

  • Callback

    ฟังก์ชัน

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

    (details: object)=>void

    • รายละเอียด

      ออบเจ็กต์

      • replacedTabId

        ตัวเลข

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

      • tabId

        ตัวเลข

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

      • timeStamp

        ตัวเลข

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