Mô tả
Sử dụng thao tác trên trình duyệt để đặt các biểu tượng trong thanh công cụ chính của Google Chrome, ở bên phải thanh địa chỉ. Ngoài biểu tượng, một thao tác trên trình duyệt có thể có chú giải công cụ, huy hiệu và cửa sổ bật lên.
Phạm vi cung cấp
Trong hình sau, hình vuông nhiều màu ở bên phải thanh địa chỉ là biểu tượng cho một thao tác trong trình duyệt. Một cửa sổ bật lên sẽ xuất hiện bên dưới biểu tượng.
Nếu bạn muốn tạo một biểu tượng không phải lúc nào cũng hoạt động, hãy sử dụng thao tác trên trang thay vì thao tác trên trình duyệt.
Tệp kê khai
Đăng ký hành động của trình duyệt trong tệp kê khai tiện ích như sau:
{
"name": "My extension",
...
"browser_action": {
"default_icon": { // optional
"16": "images/icon16.png", // optional
"24": "images/icon24.png", // optional
"32": "images/icon32.png" // optional
},
"default_title": "Google Mail", // optional, shown in tooltip
"default_popup": "popup.html" // optional
},
...
}
Bạn có thể cung cấp biểu tượng có kích thước bất kỳ để sử dụng trong Chrome. Chrome sẽ chọn biểu tượng gần nhất và điều chỉnh theo tỷ lệ sao cho phù hợp với không gian 16 pixel. Tuy nhiên, nếu bạn không cung cấp kích thước chính xác, việc điều chỉnh theo tỷ lệ này có thể khiến biểu tượng bị mất chi tiết hoặc trông mờ.
Vì các thiết bị có hệ số tỷ lệ ít phổ biến hơn như 1,5x hoặc 1,2x đang trở nên phổ biến hơn, nên bạn nên cung cấp nhiều kích thước cho biểu tượng. Điều này cũng đảm bảo rằng nếu kích thước hiển thị biểu tượng thay đổi, bạn không cần làm gì thêm để cung cấp các biểu tượng khác!
Cú pháp cũ để đăng ký biểu tượng mặc định vẫn được hỗ trợ:
{
"name": "My extension",
...
"browser_action": {
...
"default_icon": "images/icon32.png" // optional
// equivalent to "default_icon": { "32": "images/icon32.png" }
},
...
}
Các phần của giao diện người dùng
Một thao tác trên trình duyệt có thể có biểu tượng, chú giải công cụ, huy hiệu và cửa sổ bật lên.
Biểu tượng
Các biểu tượng thao tác trong trình duyệt trên Chrome có chiều rộng và chiều cao là 16 dip (pixel độc lập với thiết bị). Các biểu tượng lớn hơn sẽ được đổi kích thước cho phù hợp, nhưng để có kết quả tốt nhất, hãy sử dụng biểu tượng hình vuông 16 pixel.
Bạn có thể đặt biểu tượng theo hai cách: sử dụng hình ảnh tĩnh hoặc sử dụng phần tử canvas HTML5. Việc sử dụng hình ảnh tĩnh sẽ dễ dàng hơn đối với các ứng dụng đơn giản, nhưng bạn có thể tạo giao diện người dùng linh động hơn (chẳng hạn như ảnh động mượt mà) bằng cách sử dụng phần tử canvas.
Hình ảnh tĩnh có thể ở bất kỳ định dạng nào mà WebKit có thể hiển thị, bao gồm BMP, GIF, ICO, JPEG hoặc PNG. Đối với các tiện ích chưa giải nén, hình ảnh phải ở định dạng PNG.
Để đặt biểu tượng, hãy sử dụng trường default_icon của browser_action trong tệp kê khai hoặc gọi phương thức browserAction.setIcon
.
Để hiển thị biểu tượng đúng cách khi mật độ pixel màn hình (tỷ lệ size_in_pixel / size_in_dip
) khác với 1, bạn có thể xác định biểu tượng là một tập hợp hình ảnh có nhiều kích thước. Hình ảnh thực tế sẽ được chọn từ tập hợp để phù hợp nhất với kích thước pixel là 16 dip. Bộ biểu tượng có thể chứa bất kỳ thông số kỹ thuật biểu tượng kích thước nào và Chrome sẽ chọn thông số kỹ thuật phù hợp nhất.
Chú giải công cụ
Để đặt chú giải công cụ, hãy sử dụng trường default_title của browser_action trong tệp kê khai hoặc gọi phương thức browserAction.setTitle
. Bạn có thể chỉ định các chuỗi theo ngôn ngữ cụ thể cho trường default_title; hãy xem phần Quốc tế hoá để biết thông tin chi tiết.
Huy hiệu
Các thao tác trong trình duyệt có thể tuỳ ý hiển thị một huy hiệu – một đoạn văn bản được xếp chồng lên biểu tượng. Huy hiệu giúp bạn dễ dàng cập nhật thao tác trong trình duyệt để hiển thị một lượng nhỏ thông tin về trạng thái của tiện ích.
Vì huy hiệu có không gian hạn chế nên huy hiệu phải có tối đa 4 ký tự.
Đặt văn bản và màu của huy hiệu bằng cách sử dụng browserAction.setBadgeText
và browserAction.setBadgeBackgroundColor
tương ứng.
Cửa sổ bật lên
Nếu một hành động trong trình duyệt có cửa sổ bật lên, thì cửa sổ bật lên sẽ xuất hiện khi người dùng nhấp vào biểu tượng của tiện ích. Cửa sổ bật lên có thể chứa bất kỳ nội dung HTML nào mà bạn muốn và tự động điều chỉnh kích thước cho phù hợp với nội dung đó. Cửa sổ bật lên không được nhỏ hơn 25x25 và không được lớn hơn 800x600.
Để thêm cửa sổ bật lên vào hành động trong trình duyệt, hãy tạo một tệp HTML có nội dung của cửa sổ bật lên. Chỉ định tệp HTML trong trường default_popup của browser_action trong tệp kê khai hoặc gọi phương thức browserAction.setPopup
.
Mẹo
Để có hiệu ứng hình ảnh tốt nhất, hãy làm theo các nguyên tắc sau:
- Nên sử dụng thao tác trên trình duyệt cho các tính năng phù hợp trên hầu hết các trang.
- Đừng sử dụng hành động trong trình duyệt cho những tính năng chỉ phù hợp với một vài trang. Thay vào đó, hãy sử dụng thao tác trên trang.
- Nên sử dụng các biểu tượng lớn, đầy màu sắc để tận dụng tối đa không gian 16x16 điểm ảnh. Biểu tượng hành động trong trình duyệt phải lớn và đậm hơn một chút so với biểu tượng hành động trên trang.
- Đừng cố gắng bắt chước biểu tượng trình đơn đơn sắc của Google Chrome. Cách này không hiệu quả với các giao diện và dù sao, các tiện ích cũng cần phải nổi bật một chút.
- Nên sử dụng độ trong suốt alpha để thêm các cạnh mềm vào biểu tượng. Vì nhiều người sử dụng giao diện nên biểu tượng của bạn phải trông đẹp trên nhiều màu nền.
- Không tạo ảnh động liên tục cho biểu tượng. Điều đó thật phiền phức.
Ví dụ
Bạn có thể tìm thấy các ví dụ đơn giản về cách sử dụng hành động trong trình duyệt trong thư mục examples/api/browserAction. Để biết các ví dụ khác và để được trợ giúp về cách xem mã nguồn, hãy xem phần Mẫu.
Loại
TabDetails
Thuộc tính
-
tabId
số không bắt buộc
Mã của thẻ để truy vấn trạng thái. Nếu không chỉ định thẻ nào, thì trạng thái không dành riêng cho thẻ sẽ được trả về.
Phương thức
disable()
chrome.browserAction.disable(
tabId?: number,
callback?: function,
)
Tắt thao tác trên trình duyệt cho một thẻ.
Thông số
-
tabId
số không bắt buộc
Mã của thẻ cần sửa đổi hành động trong trình duyệt.
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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.
enable()
chrome.browserAction.enable(
tabId?: number,
callback?: function,
)
Bật thao tác trong trình duyệt cho một thẻ. Giá trị mặc định là bật.
Thông số
-
tabId
số không bắt buộc
Mã của thẻ cần sửa đổi hành động trong trình duyệt.
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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.
getBadgeBackgroundColor()
chrome.browserAction.getBadgeBackgroundColor(
details: TabDetails,
callback?: function,
)
Lấy màu nền của thao tác trong trình duyệt.
Thông số
-
chi tiết
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: ColorArray) => void
-
kết quả
-
Giá trị trả về
-
Promise<extensionTypes.ColorArray>
Chrome 88 trở lênLờ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.
getBadgeText()
chrome.browserAction.getBadgeText(
details: TabDetails,
callback?: function,
)
Lấy văn bản huy hiệu của thao tác trong trình duyệt. Nếu không chỉ định thẻ nào, thì văn bản huy hiệu không dành riêng cho thẻ sẽ được trả về.
Thông số
-
chi tiết
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: string) => void
-
kết quả
chuỗi
-
Giá trị trả về
-
Promise<string>
Chrome 88 trở lênLờ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.
getPopup()
chrome.browserAction.getPopup(
details: TabDetails,
callback?: function,
)
Lấy tài liệu HTML được đặt làm cửa sổ bật lên cho thao tác trên trình duyệt này.
Thông số
-
chi tiết
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: string) => void
-
kết quả
chuỗi
-
Giá trị trả về
-
Promise<string>
Chrome 88 trở lênLờ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.
getTitle()
chrome.browserAction.getTitle(
details: TabDetails,
callback?: function,
)
Lấy tiêu đề của thao tác trong trình duyệt.
Thông số
-
chi tiết
-
callback
hàm không bắt buộc
Tham số
callback
có dạng như sau:(result: string) => void
-
kết quả
chuỗi
-
Giá trị trả về
-
Promise<string>
Chrome 88 trở lênLờ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.
setBadgeBackgroundColor()
chrome.browserAction.setBadgeBackgroundColor(
details: object,
callback?: function,
)
Đặt màu nền cho huy hiệu.
Thông số
-
chi tiết
đối tượng
-
màu
string | ColorArray
Một mảng gồm 4 số nguyên trong khoảng từ 0 đến 255 tạo nên màu RGBA của huy hiệu. Cũng có thể là một chuỗi có giá trị màu hex CSS; ví dụ:
#FF0000
hoặc#F00
(màu đỏ). Hiển thị màu ở độ mờ đầy đủ. -
tabId
số không bắt buộc
Giới hạn thay đổi ở thời điểm bạn chọn một thẻ cụ thể. Tự động đặt lại khi thẻ bị đóng.
-
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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.
setBadgeText()
chrome.browserAction.setBadgeText(
details: object,
callback?: function,
)
Đặt văn bản huy hiệu cho hành động trong trình duyệt. Huy hiệu sẽ xuất hiện ở đầu biểu tượng.
Thông số
-
chi tiết
đối tượng
-
tabId
số không bắt buộc
Giới hạn thay đổi ở thời điểm bạn chọn một thẻ cụ thể. Tự động đặt lại khi thẻ bị đóng.
-
văn bản
chuỗi không bắt buộc
Bạn có thể truyền số lượng ký tự bất kỳ, nhưng chỉ khoảng 4 ký tự có thể vừa với không gian. Nếu bạn truyền một chuỗi trống (
''
), văn bản huy hiệu sẽ bị xoá. Nếu bạn chỉ địnhtabId
vàtext
là giá trị rỗng, thì văn bản cho thẻ đã chỉ định sẽ bị xoá và mặc định là văn bản huy hiệu chung.
-
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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.
setIcon()
chrome.browserAction.setIcon(
details: object,
callback?: function,
)
Đặt biểu tượng cho thao tác trong trình duyệt. Bạn có thể chỉ định biểu tượng dưới dạng đường dẫn đến tệp hình ảnh, dưới dạng dữ liệu pixel từ phần tử canvas hoặc dưới dạng từ điển của một trong những dữ liệu đó. Bạn phải chỉ định thuộc tính path
hoặc imageData
.
Thông số
-
chi tiết
đối tượng
-
imageData
ImageData | đối tượng không bắt buộc
Một đối tượng ImageData hoặc một từ điển {size -> ImageData} đại diện cho một biểu tượng cần đặt. Nếu biểu tượng được chỉ định là từ điển, thì hình ảnh được sử dụng sẽ được chọn tuỳ thuộc vào mật độ pixel của màn hình. Nếu số pixel hình ảnh vừa với một đơn vị không gian màn hình bằng
scale
, thì hình ảnh có kích thướcscale
* n sẽ được chọn, trong đó n là kích thước của biểu tượng trong giao diện người dùng. Bạn phải chỉ định ít nhất một hình ảnh. Lưu ý rằng "details.imageData = foo" tương đương với "details.imageData = {'16': foo}" -
đường dẫn
string | object không bắt buộc
Đường dẫn hình ảnh tương đối hoặc từ điển {size -> relative image path} trỏ đến một biểu tượng cần đặt. Nếu biểu tượng được chỉ định là từ điển, thì hình ảnh được sử dụng sẽ được chọn tuỳ thuộc vào mật độ pixel của màn hình. Nếu số pixel hình ảnh vừa với một đơn vị không gian màn hình bằng
scale
, thì hình ảnh có kích thướcscale
* n sẽ được chọn, trong đó n là kích thước của biểu tượng trong giao diện người dùng. Bạn phải chỉ định ít nhất một hình ảnh. Lưu ý rằng "details.path = foo" tương đương với "details.path = {'16': foo}" -
tabId
số không bắt buộc
Giới hạn thay đổi ở thời điểm bạn chọn một thẻ cụ thể. Tự động đặt lại khi thẻ bị đó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 116 trở lênLờ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.
setPopup()
chrome.browserAction.setPopup(
details: object,
callback?: function,
)
Đặt tài liệu HTML để mở dưới dạng cửa sổ bật lên khi người dùng nhấp vào biểu tượng hành động của trình duyệt.
Thông số
-
chi tiết
đối tượng
-
cửa sổ bật lên
chuỗi
Đường dẫn tương đối đến tệp HTML để hiển thị trong cửa sổ bật lên. Nếu bạn đặt thành chuỗi trống (
''
), thì không có cửa sổ bật lên nào xuất hiện. -
tabId
số không bắt buộc
Giới hạn thay đổi ở thời điểm bạn chọn một thẻ cụ thể. Tự động đặt lại khi thẻ bị đóng.
-
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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.
setTitle()
chrome.browserAction.setTitle(
details: object,
callback?: function,
)
Đặt tiêu đề cho thao tác trong trình duyệt. Tiêu đề này xuất hiện trong chú giải công cụ.
Thông số
-
chi tiết
đối tượng
-
tabId
số không bắt buộc
Giới hạn thay đổi ở thời điểm bạn chọn một thẻ cụ thể. Tự động đặt lại khi thẻ bị đóng.
-
tiêu đề
chuỗi
Chuỗi mà thao tác trên trình duyệt sẽ hiển thị khi di chuột qua.
-
-
callback
hàm không bắt buộc
Chrome 67 trở lênTham số
callback
có dạng như sau:() => void
Giá trị trả về
-
Promise<void>
Chrome 88 trở lênLờ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
onClicked
chrome.browserAction.onClicked.addListener(
callback: function,
)
Được kích hoạt khi người dùng nhấp vào biểu tượng thao tác trong trình duyệt. Không kích hoạt nếu thao tác của trình duyệt có cửa sổ bật lên.