Helpex - Trao đổi & giúp đỡ Đăng nhập
32

Có cách nào để mở trang options.html của plugin Google Chrome thông qua Javascript trong background.html không?

32 hữu ích 0 bình luận 19k xem chia sẻ
54
chrome.tabs.create({ url: "options.html" });

Cập nhật

Bắt đầu từ phiên bản 40, Chrome hiện sử dụng hộp thoại tùy chọn bật lên mới từ trang quản lý tiện ích thay vì các trang tùy chọn chuyên dụng (đang không được dùng nữa). Bạn vẫn có thể đạt được hiệu quả tương tự khi sửa đổi URL.

chrome.tabs.create({ 'url': 'chrome://extensions/?options=' + chrome.runtime.id });
54 hữu ích 5 bình luận chia sẻ
57

Có một phương pháp mới được bật bắt đầu với Chrome 42 :

chrome.runtime.openOptionsPage(function callback)

Mở trang tùy chọn Tiện ích mở rộng của bạn, nếu có thể.

Hành vi chính xác có thể phụ thuộc vào tệp kê khai options_uihoặc options_pagekhóa của bạn hoặc những gì Chrome sẽ hỗ trợ vào thời điểm đó. Ví dụ: trang có thể được mở trong một tab mới, bên trong chrome://extensions, trong Ứng dụng hoặc nó có thể chỉ tập trung vào một trang tùy chọn đang mở. Nó sẽ không bao giờ khiến trang người gọi tải lại.

Nếu Tiện ích của bạn không khai báo trang tùy chọn hoặc Chrome không tạo được trang vì một số lý do khác, thì lệnh gọi lại sẽ được đặt lastError.

57 hữu ích 2 bình luận chia sẻ
27

Mở hoặc chuyển sang trang tùy chọn đã mở (thay vì mở một trang trùng lặp):

var optionsUrl = chrome.extension.getURL('options.html');

chrome.tabs.query({url: optionsUrl}, function(tabs) {
    if (tabs.length) {
        chrome.tabs.update(tabs[0].id, {active: true});
    } else {
        chrome.tabs.create({url: optionsUrl});
    }
});
27 hữu ích 4 bình luận chia sẻ
1

Không cần sử dụng API Chrome, chỉ sử dụng các API Web tiêu chuẩn, bạn có thể thực hiện những điều sau:

window.open("chrome-extension://ghipmampnddcpdlppkkamoankmkmcbmh/options.html")

Hoặc, để điều hướng từ trang hiển thị đến trang tiện ích mở rộng:

location.href = "chrome-extension://ghipmampnddcpdlppkkamoankmkmcbmh/options.html"

Điều này yêu cầu mã hóa cứng ID tiện ích.

Có lẽ lần duy nhất điều này thích hợp hơn so với việc sử dụng API Chrome là khi nó được gọi từ ngữ cảnh không phải tiện ích mở rộng (và không phải kịch bản "từ trang nền" ban đầu). Tuy nhiên, lưu ý rằng ngữ cảnh web không thể điều hướng đến một chrome-extension://*trang (nó sẽ dẫn đến about:blank) trừ khi nó được khai báo là có thể truy cập web .

Trong trường hợp như vậy, thay vào đó, người ta cũng nên xem xét việc giao tiếp với trang web thông qua tập lệnh nội dung hoặc tin nhắn bên ngoài .

1 hữu ích 5 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript google-chrome google-chrome-extension , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading