chrome.history

refresh date: 2026-09-25 robots: noindex

Mô tả

Sử dụng API chrome.history để tương tác với bản ghi của trình duyệt về các trang đã truy cập. Bạn có thể thêm, xoá và truy vấn URL trong nhật ký của trình duyệt. Để ghi đè trang nhật ký bằng phiên bản của riêng bạn, hãy xem phần Ghi đè trang.

Quyền

history

Tệp kê khai

Bạn phải khai báo quyền "history" trong tệp kê khai tiện ích để sử dụng API nhật ký. Ví dụ:

{
  "name": "My extension",
  ...
  "permissions": [
    "history"
  ],
  ...
}

Loại chuyển tiếp

API nhật ký sử dụng loại chuyển hướng để mô tả cách trình duyệt chuyển đến một URL cụ thể trong một lượt truy cập cụ thể. Ví dụ: nếu người dùng truy cập vào một trang bằng cách nhấp vào đường liên kết trên một trang khác, thì loại chuyển đổi là "đường liên kết".

Bảng sau đây mô tả từng loại chuyển hướng.

Loại chuyển đổiMô tả
"typed"Người dùng truy cập vào trang này bằng cách nhập URL vào thanh địa chỉ. Cũng được dùng cho các thao tác điều hướng rõ ràng khác. Xem thêm generated, được dùng cho các trường hợp người dùng chọn một lựa chọn hoàn toàn không giống URL.
"auto_bookmark"Người dùng truy cập vào trang này thông qua một đề xuất trong giao diện người dùng, chẳng hạn như thông qua một mục trong trình đơn.
"auto_subframe"Thao tác điều hướng khung phụ. Đây là mọi nội dung được tải tự động trong một khung không phải cấp cao nhất. Ví dụ: nếu một trang bao gồm nhiều khung chứa quảng cáo, thì các URL quảng cáo đó sẽ có loại chuyển hướng này. Người dùng thậm chí có thể không nhận ra nội dung trong các trang này là một khung riêng biệt, nên có thể không quan tâm đến URL (xem thêm manual_subframe).
"manual_subframe"Đối với các thao tác điều hướng khung phụ do người dùng yêu cầu rõ ràng và tạo các mục điều hướng mới trong danh sách quay lại/tiến lên. Khung hình được yêu cầu rõ ràng có thể quan trọng hơn khung hình được tải tự động vì người dùng có thể quan tâm đến việc khung hình được yêu cầu đã được tải.
"generated"Người dùng đã truy cập vào trang này bằng cách nhập vào thanh địa chỉ và chọn một mục không giống URL. Ví dụ: một kết quả trùng khớp có thể có URL của trang kết quả tìm kiếm trên Google, nhưng có thể xuất hiện cho người dùng dưới dạng "Tìm kiếm trên Google cho ...". Những kết quả này không hoàn toàn giống với thao tác điều hướng đã nhập vì người dùng không nhập hoặc không thấy URL đích. Hãy xem thêm mục từ khoá.
"auto_toplevel"Trang được chỉ định trong dòng lệnh hoặc là trang bắt đầu.
"form_submit"Người dùng đã điền các giá trị vào biểu mẫu và gửi biểu mẫu đó. Xin lưu ý rằng trong một số trường hợp (chẳng hạn như khi biểu mẫu sử dụng tập lệnh để gửi nội dung), việc gửi biểu mẫu sẽ không dẫn đến loại chuyển hướng này.
"tải lại"Người dùng đã tải lại trang bằng cách nhấp vào nút tải lại hoặc nhấn phím Enter trên thanh địa chỉ. Tính năng khôi phục phiên và mở lại thẻ đã đóng cũng sử dụng loại chuyển hướng này.
"từ khóa"URL được tạo từ một từ khoá có thể thay thế không phải là nhà cung cấp dịch vụ tìm kiếm mặc định. Hãy xem thêm mục keyword_generated.
"keyword_generated"Tương ứng với một lượt truy cập được tạo cho một từ khoá. Hãy xem thêm mục từ khoá.

Ví dụ

Để dùng thử API này, hãy cài đặt ví dụ về API nhật ký từ kho lưu trữ chrome-extension-samples.

Loại

HistoryItem

Một đối tượng đóng gói một kết quả của truy vấn nhật ký.

Thuộc tính

  • id

    chuỗi

    Giá trị nhận dạng riêng biệt của mặt hàng.

  • lastVisitTime

    number không bắt buộc

    Thời điểm gần đây nhất trang này được tải, tính bằng mili giây kể từ thời gian bắt đầu của hệ thống.

  • tiêu đề

    chuỗi không bắt buộc

    Tiêu đề của trang trong lần tải gần đây nhất.

  • typedCount

    number không bắt buộc

    Số lần người dùng đã chuyển đến trang này bằng cách nhập địa chỉ.

  • url

    chuỗi không bắt buộc

    URL mà người dùng đã truy cập.

  • visitCount

    number không bắt buộc

    Số lần người dùng đã chuyển đến trang này.

TransitionType

Chrome 44 trở lên

Loại chuyển đổi cho lượt truy cập này từ trang giới thiệu.

Enum

"link"
Người dùng truy cập vào trang này bằng cách nhấp vào một đường liên kết trên một trang khác.

"typed"
Người dùng truy cập vào trang này bằng cách nhập URL vào thanh địa chỉ. Thao tác này cũng được dùng cho các thao tác điều hướng rõ ràng khác.

"auto_bookmark"
Người dùng truy cập vào trang này thông qua một đề xuất trong giao diện người dùng, chẳng hạn như thông qua một mục trong trình đơn.

"auto_subframe"
Người dùng đã truy cập vào trang này thông qua thao tác di chuyển trong khung phụ mà họ không yêu cầu, chẳng hạn như thông qua một quảng cáo đang tải trong một khung trên trang trước. Những thao tác này không phải lúc nào cũng tạo ra các mục điều hướng mới trong trình đơn quay lại và tiến lên.

"manual_subframe"
Người dùng truy cập vào trang này bằng cách chọn một mục trong khung phụ.

"generated"
Người dùng truy cập vào trang này bằng cách nhập vào thanh địa chỉ và chọn một mục không giống URL, chẳng hạn như một cụm từ tìm kiếm được đề xuất trên Google Tìm kiếm. Ví dụ: một kết quả trùng khớp có thể có URL của trang kết quả tìm kiếm trên Google, nhưng có thể xuất hiện trước người dùng dưới dạng "Tìm kiếm trên Google cho ...". Những kết quả này khác với thao tác điều hướng bằng cách nhập vì người dùng không nhập hoặc không thấy URL đích. Các lớp này cũng liên quan đến thao tác di chuyển bằng từ khoá.

"auto_toplevel"
Trang được chỉ định trong dòng lệnh hoặc là trang bắt đầu.

"form_submit"
Người dùng đã truy cập vào trang này bằng cách điền các giá trị vào một biểu mẫu rồi gửi biểu mẫu đó. Không phải tất cả các lượt gửi biểu mẫu đều sử dụng loại chuyển đổi này.

"reload"
Người dùng đã tải lại trang bằng cách nhấp vào nút tải lại hoặc nhấn phím Enter trên thanh địa chỉ. Tính năng khôi phục phiên và Mở lại thẻ đã đóng cũng sử dụng loại chuyển đổi này.

"keyword"
URL của trang này được tạo từ một từ khoá có thể thay thế không phải là nhà cung cấp dịch vụ tìm kiếm mặc định.

"keyword_generated"
Tương ứng với một lượt truy cập được tạo cho một từ khoá.

UrlDetails

Chrome 88 trở lên

Thuộc tính

  • url

    chuỗi

    URL cho thao tác. Giá trị này phải ở định dạng được trả về từ lệnh gọi đến history.search().

VisitItem

Một đối tượng đóng gói một lượt truy cập vào một URL.

Thuộc tính

  • id

    chuỗi

    Giá trị nhận dạng riêng biệt của history.HistoryItem tương ứng.

  • isLocal

    boolean

    Chrome 115 trở lên

    Đúng nếu lượt ghé thăm bắt đầu trên thiết bị này. False nếu được đồng bộ hoá từ một thiết bị khác.

  • referringVisitId

    chuỗi

    Mã lượt truy cập của người giới thiệu.

  • chuyển cảnh

    Loại chuyển đổi cho lượt truy cập này từ trang giới thiệu.

  • visitId

    chuỗi

    Giá trị nhận dạng riêng biệt cho lượt ghé thăm này.

  • visitTime

    number không bắt buộc

    Thời điểm diễn ra lượt truy cập này, được biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống.

Phương thức

addUrl()

Promise
chrome.history.addUrl(
  details: UrlDetails,
  callback?: function,
)
: Promise<void>

Thêm một URL vào nhật ký tại thời điểm hiện tại với loại chuyển đổi là "đường liên kết".

Thông số

  • chi tiết
  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

deleteAll()

Promise
chrome.history.deleteAll(
  callback?: function,
)
: Promise<void>

Xoá tất cả các mục khỏi nhật ký.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

deleteRange()

Promise
chrome.history.deleteRange(
  range: object,
  callback?: function,
)
: Promise<void>

Xoá tất cả các mục trong phạm vi ngày đã chỉ định khỏi nhật ký. Các trang sẽ không bị xoá khỏi nhật ký trừ phi tất cả các lượt truy cập đều nằm trong phạm vi.

Thông số

  • phạm vi

    đối tượng

    • endTime

      số

      Các mục được thêm vào nhật ký trước ngày này, được biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống.

    • startTime

      số

      Các mục được thêm vào nhật ký sau ngày này, được biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

deleteUrl()

Promise
chrome.history.deleteUrl(
  details: UrlDetails,
  callback?: function,
)
: Promise<void>

Xoá tất cả các lần xuất hiện của URL đã cho khỏi nhật ký.

Thông số

  • chi tiết
  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getVisits()

Promise
chrome.history.getVisits(
  details: UrlDetails,
  callback?: function,
)
: Promise<VisitItem[]>

Truy xuất thông tin về các lượt truy cập vào một URL.

Thông số

  • chi tiết
  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (results: VisitItem[]) => void

Giá trị trả về

  • Promise<VisitItem[]>

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

Promise
chrome.history.search(
  query: object,
  callback?: function,
)
: Promise<HistoryItem[]>

Tìm kiếm trong nhật ký để biết thời gian truy cập gần đây nhất của mỗi trang khớp với cụm từ tìm kiếm.

Thông số

  • truy vấn

    đối tượng

    • endTime

      number không bắt buộc

      Giới hạn kết quả ở những kết quả được truy cập trước ngày này, được biểu thị bằng mili giây kể từ thời điểm bắt đầu thời gian Unix.

    • maxResults

      number không bắt buộc

      Số lượng kết quả tối đa cần truy xuất. Giá trị mặc định là 100.

    • startTime

      number không bắt buộc

      Giới hạn kết quả ở những kết quả được truy cập sau ngày này, được biểu thị bằng mili giây kể từ thời điểm bắt đầu hệ thống. Nếu bạn không chỉ định thuộc tính, thì thuộc tính này sẽ mặc định là 24 giờ.

    • văn bản

      chuỗi

      Một truy vấn văn bản tuỳ ý đến dịch vụ nhật ký. Hãy để trống trường này để truy xuất tất cả các trang.

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (results: HistoryItem[]) => void

Giá trị trả về

  • <HistoryItem[]> hứa hẹn

    Chrome 96 trở lên

    Lời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

Sự kiện

onVisited

chrome.history.onVisited.addListener(
  callback: function,
)

Được kích hoạt khi người dùng truy cập vào một URL, cung cấp dữ liệu HistoryItem cho URL đó. Sự kiện này kích hoạt trước khi trang tải xong.

Thông số

  • callback

    hàm

    Tham số callback có dạng như sau:

    (result: HistoryItem) => void

onVisitRemoved

chrome.history.onVisitRemoved.addListener(
  callback: function,
)

Kích hoạt khi một hoặc nhiều URL bị xoá khỏi nhật ký. Khi tất cả lượt truy cập đã bị xoá, URL sẽ bị xoá khỏi nhật ký.

Thông số

  • callback

    hàm

    Tham số callback có dạng như sau:

    (removed: object) => void

    • đã xóa

      đối tượng

      • allHistory

        boolean

        Đúng nếu tất cả nhật ký đã bị xoá. Nếu đúng, thì URL sẽ trống.

      • url

        string[] không bắt buộc