Bộ công cụ tiện ích trình duyệt & bookmarklet
Tạo manifest.json Manifest V3 kèm mức rủi ro dễ hiểu cho từng quyền, kiểm tra và chuyển manifest cũ từ Manifest V2, thử match pattern với URL thật, biến JavaScript thành bookmarklet kéo thả được và viết header userscript cho Tampermonkey / Violentmonkey — năm công cụ trên một trang, tất cả chạy trong trình duyệt của bạn.
Các bước sử dụng
- Mở Tạo Manifest V3 và điền Thông tin cơ bản: tên, phiên bản, mô tả và đường dẫn biểu tượng. Ô phiên bản báo ngay nếu Chrome sẽ từ chối (ví dụ
1.01hoặc năm số). - Trong Nút thanh công cụ và nền, đặt trang popup và tệp service worker. Thêm một hoặc nhiều
content_scriptscùng match pattern,run_at,all_framesvàworld. - Ở mục Quyền, chọn các quyền API và gõ mẫu host. Bảng bên dưới liệt kê từng quyền với mức rủi ro, Cho phép làm gì và Cảnh báo của Chrome mà người dùng thấy khi cài tiện ích.
- Xem Kiểm tra ở bên phải, rồi Sao chép hoặc Tải xuống manifest. ZIP khởi đầu thêm các tệp giữ chỗ
background.js, popup và content script để thư mục nạp được ngay; Mở trong trình kiểm tra chuyển tệp sang thẻ kế tiếp. - Mở Kiểm tra & MV2 → MV3. Dán manifest, Mở tệp hoặc nạp Mẫu MV2. Lỗi JSON hiện đúng dòng và cột; các vấn đề khác — khoá lạ, match pattern sai, mã từ xa, nguồn CSP bị cấm — được liệt kê kèm số dòng.
- Với tệp Manifest V2, làm theo các bước chuyển đổi được đánh số, chuyển giữa Bản nháp MV3 và So sánh để xem những gì đã đổi, rồi bấm Kiểm tra bản nháp để kiểm tra tệp đã chuyển.
- Mở Thử match pattern. Nhập các mẫu vào Match pattern (mỗi dòng một mẫu) và địa chỉ vào URL cần kiểm tra (mỗi dòng một URL). Từng mẫu với từng URL giải thích từng kết quả, còn Content script với thiết lập này có chạy không? kết hợp các mẫu với
exclude_matches,include_globsvàexclude_globs. - Mở Tạo bookmarklet, chọn một mẫu có sẵn hoặc tự viết JavaScript, giữ bật Rút gọn và Bọc trong hàm (IIFE), đặt Tên dấu trang rồi kéo nút màu xanh lên thanh dấu trang.
- Mở Header userscript, điền siêu dữ liệu,
@matchvà@grant, hoặc dùng Nạp header có sẵn và Nạp vào biểu mẫu để sửa script bạn đang có. Sao chép hoặc Tải xuống tệp.user.jshoàn chỉnh.
Mẹo
- Xin càng ít quyền càng tốt.
activeTabcho quyền truy cập tạm thời vào thẻ hiện tại mà không có cảnh báo khi cài, và thay đượctabshoặc<all_urls>trong nhiều tiện ích. *://*/*chỉ khớp trang http và https.*.example.comkhớp cả chínhexample.com, và mẫu không ghi cổng thì khớp mọi cổng.include_globsvàexclude_globsdùng*cho chuỗi ký tự bất kỳ và?cho đúng một ký tự, và được so với toàn bộ URL.- Bộ rút gọn giữ nguyên chuỗi, template literal và biểu thức chính quy, rồi tự kiểm tra lại kết quả. Khi không thể rút gọn an toàn, bookmarklet dùng nguyên mã bạn viết và trang cho biết lý do.
- Ghim mỗi
@requirebằng mã băm như#sha256=…, và liệt kê các tên miền màGM_xmlhttpRequestđược gọi bằng@connect. - ZIP khởi đầu không có ảnh: thêm biểu tượng PNG đúng các đường dẫn đã nhập trước khi nạp thư mục tại
chrome://extensionsvới Chế độ nhà phát triển.
Câu hỏi thường gặp
Manifest, mã hay userscript của tôi có bị tải lên đâu không?
Không. Việc tạo, kiểm tra, chuyển đổi, so khớp mẫu, rút gọn và tạo ZIP đều chạy trong trình duyệt của bạn. Không có gì bạn gõ hoặc dán được gửi lên máy chủ.
Bookmarklet có an toàn không?
Bookmarklet là JavaScript thông thường chạy bên trong trang bạn bấm nó, với quyền truy cập như chính trang đó. Bookmarklet do bạn viết hoặc đã đọc thì an toàn đúng bằng đoạn mã đó; bookmarklet chép từ nguồn lạ có thể lấy cắp nội dung trên trang, kể cả thông tin đăng nhập và tin nhắn. Công cụ này không bao giờ chạy mã — chỉ tạo liên kết.
Bản nháp Manifest V3 có làm tiện ích của tôi chạy được không?
Bản nháp chuyển đổi manifest: action, service worker, host_permissions, đối tượng CSP, đối tượng web_accessible_resources và bộ quy tắc declarativeNetRequest. Mã JavaScript vẫn cần các thay đổi được liệt kê, như chuyển từ chrome.browserAction sang chrome.action và viết lại listener webRequest chặn thành quy tắc.
Vì sao Firefox từ chối match pattern mà Chrome chấp nhận?
Chrome cho phép cổng như http://localhost:3000/*, nhưng Firefox không chấp nhận cổng trong match pattern. Manifest V3 của Firefox cũng vẫn dùng background.scripts và cần browser_specific_settings.gecko.id để phát hành trên addons.mozilla.org.
Mức rủi ro có phải chính thức không?
Cảnh báo khi cài là văn bản Chrome hiển thị. Các mức cao, trung bình, thấp là hướng dẫn về mức độ mỗi quyền để lộ dữ liệu; quá trình duyệt của Chrome Web Store xem xét kỹ nhất các quyền rủi ro cao và quyền host rộng.