Mô tả
Sử dụng API chrome.pageAction
để đặt biểu tượng trong thanh công cụ chính của Google Chrome, ở bên phải thanh địa chỉ. Hành động trên trang là những hành động có thể thực hiện trên trang hiện tại nhưng không áp dụng cho tất cả các trang. Các thao tác trên trang sẽ chuyển sang màu xám khi không hoạt động.
Phạm vi cung cấp
Một số ví dụ:
- Đăng ký nguồn cấp dữ liệu RSS của trang này
- Tạo một trình chiếu gồm ảnh trên trang này
Biểu tượng RSS trong ảnh chụp màn hình sau đây biểu thị một thao tác trên trang cho phép bạn đăng ký nhận nguồn cấp dữ liệu RSS cho trang hiện tại.
Các thao tác bị ẩn trên trang sẽ xuất hiện màu xám. Ví dụ: nguồn cấp dữ liệu RSS bên dưới bị làm mờ vì bạn không thể đăng ký nguồn cấp dữ liệu cho trang hiện tại:
Vui lòng cân nhắc sử dụng thao tác của trình duyệt để người dùng luôn có thể tương tác với tiện ích của bạn.
Tệp kê khai
Đăng ký thao tác trên trang trong tệp kê khai tiện ích như sau:
{
"name": "My extension",
...
"page_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
},
...
}
Vì các thiết bị có hệ số tỷ lệ ít phổ biế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 của mình. Chrome sẽ chọn biểu tượng gần nhất và điều chỉnh kích thước để lấp đầy không gian 16 dip. Đ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 phải làm gì thêm để cung cấp các biểu tượng khác! Tuy nhiên, nếu chênh lệch kích thước quá lớn, thì việc mở rộng này có thể khiến biểu tượng mất chi tiết hoặc trông mờ.
Cú pháp cũ để đăng ký biểu tượng mặc định vẫn được hỗ trợ:
{
"name": "My extension",
...
"page_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
Giống như các thao tác của trình duyệt, các thao tác trên trang có thể có biểu tượng, chú thích và cửa sổ bật lên; tuy nhiên, các thao tác này không thể có huy hiệu. Ngoài ra, các thao tác trên trang có thể bị mờ. Bạn có thể tìm thấy thông tin về biểu tượng, chú thích và cửa sổ bật lên bằng cách đọc về giao diện người dùng của thao tác trên trình duyệt.
Bạn có thể làm cho một thao tác trên trang xuất hiện và chuyển sang màu xám bằng các phương thức pageAction.show
và pageAction.hide
, tương ứng. Theo mặc định, một thao tác trên trang sẽ xuất hiện ở trạng thái mờ. Khi bạn hiện biểu tượng này, bạn sẽ chỉ định thẻ mà biểu tượng sẽ xuất hiện. Biểu tượng này vẫn hiển thị cho đến khi thẻ bị đóng hoặc bắt đầu hiển thị một URL khác (ví dụ: do người dùng nhấp vào một đường liên kết).
Mẹo
Để có tác động trực quan tốt nhất, hãy tuân thủ các nguyên tắc sau:
- Nên dùng các thao tác trên trang cho những tính năng chỉ phù hợp với một số trang.
- Đừng sử dụng thao tác trên trang cho những tính năng phù hợp với hầu hết các trang. Thay vào đó, hãy sử dụng thao tác trên trình duyệt.
- Không liên tục tạo ảnh động cho biểu tượng. Điều đó chỉ gây khó chịu.
Loại
ImageDataType
Dữ liệu pixel của một hình ảnh. Phải là một đối tượng ImageData (ví dụ: từ phần tử canvas
).
Loại
ImageData
TabDetails
Thuộc tính
-
tabId
number không bắt buộc
Mã của thẻ để truy vấn trạng thái. Nếu không có thẻ nào được chỉ định, thì trạng thái không dành riêng cho thẻ sẽ được trả về.
Phương thức
getPopup()
chrome.pageAction.getPopup(
details: TabDetails,
callback?: function,
): Promise<string>
Lấy tài liệu HTML được đặt làm cửa sổ bật lên cho thao tác trên trang 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 101 trở lênCác promise 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.pageAction.getTitle(
details: TabDetails,
callback?: function,
): Promise<string>
Lấy tiêu đề của thao tác trên trang.
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 101 trở lênCác promise 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.
hide()
chrome.pageAction.hide(
tabId: number,
callback?: function,
): Promise<void>
Ẩn thao tác trên trang. Các thao tác bị ẩn trên trang vẫn xuất hiện trên thanh công cụ của Chrome nhưng bị làm mờ.
Thông số
-
tabId
số
Mã nhận dạng của thẻ mà bạn muốn sửa đổi thao tác trên trang.
-
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 101 trở lênCác promise 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.pageAction.setIcon(
details: object,
callback?: function,
): Promise<void>
Đặt biểu tượng cho thao tác trên trang. Bạn có thể chỉ định biểu tượng dưới dạng đường dẫn đến một tệp hình ảnh hoặc dưới dạng dữ liệu pixel từ một phần tử canvas, hoặc dưới dạng từ điển của một trong hai loại đó. Bạn phải chỉ định thuộc tính path hoặc imageData.
Thông số
-
chi tiết
đối tượng
-
iconIndex
number không bắt buộc
Không dùng nữa. Đối số này sẽ bị bỏ qua.
-
imageData
ImageData | object 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 biểu tượng sẽ được đặt. Nếu biểu tượng được chỉ định dưới dạng từ điển, thì hình ảnh thực tế sẽ được dùng tuỳ thuộc vào mật độ pixel của màn hình. Nếu số lượng 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. Xin 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 biểu tượng cần đặt. Nếu biểu tượng được chỉ định dưới dạng từ điển, thì hình ảnh thực tế sẽ được dùng tuỳ thuộc vào mật độ pixel của màn hình. Nếu số lượng 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ố
Mã nhận dạng của thẻ mà bạn muốn sửa đổi thao tác trên trang.
-
-
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 101 trở lênCác promise 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.pageAction.setPopup(
details: object,
callback?: function,
): Promise<void>
Đặt tài liệu HTML sẽ được 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 của thao tác trên trang.
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 sẽ xuất hiện trong cửa sổ bật lên. Nếu bạn đặt thành chuỗi trống (
''
), thì sẽ không có cửa sổ bật lên nào xuất hiện. -
tabId
số
Mã nhận dạng của thẻ mà bạn muốn sửa đổi thao tác trên trang.
-
-
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 101 trở lênCác promise 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.pageAction.setTitle(
details: object,
callback?: function,
): Promise<void>
Đặt tiêu đề cho thao tác trên trang. Nội dung này xuất hiện trong chú thích khi bạn di chuột qua thao tác trên trang.
Thông số
-
chi tiết
đối tượng
-
tabId
số
Mã nhận dạng của thẻ mà bạn muốn sửa đổi thao tác trên trang.
-
tiêu đề
chuỗi
Chuỗi chú thích.
-
-
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 101 trở lênCác promise 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.
show()
chrome.pageAction.show(
tabId: number,
callback?: function,
): Promise<void>
Hiển thị thao tác trên trang. Thao tác trên trang sẽ xuất hiện bất cứ khi nào thẻ được chọn.
Thông số
-
tabId
số
Mã nhận dạng của thẻ mà bạn muốn sửa đổi thao tác trên trang.
-
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 101 trở lênCác promise 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.pageAction.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 trên trang. Sự kiện này sẽ không kích hoạt nếu thao tác trên trang có một cửa sổ bật lên.