2012-04-30 35 views
11

Tôi đang tạo thông báo trên màn hình cho tiện ích mở rộng chrome của mình mà tôi đang làm việc. Chức năng tôi cần yêu cầu người dùng được đưa đến tab đã gây ra thông báo khi họ nhấp vào cửa sổ thông báo. Tôi có thể làm việc đó bằng cách sử dụng API chrome.tabs, nhưng những gì tôi không thể tìm ra là làm cách nào để đưa Chrome lên phía trước khi thông báo được nhấp.Nhấp vào thông báo trên máy tính để bàn Chrome để tập trung vào nội dung

Tôi biết window.focus() bị tắt trong chrome, nhưng điều này chắc chắn có thể thực hiện được vì đó là hành vi của thông báo trên màn hình Gmail.

Trả lời

23
notification = webkitNotifications.createNotification(...) 
notification.onclick = function(){ 
    window.focus(); 
    this.cancel(); 
}; 
notification.show() 

... hoạt động như mong đợi, không có bất kỳ quyền bổ sung nào.

+1

là này vẫn còn hiệu lực? Nó không hoạt động cho tôi – rodi

+0

Điều này là sai, đây là cho api HTML5, anh ta hỏi về API mở rộng chrome. – RVera

+0

Điều này cũng không có tác dụng với tôi. Nhấp vào thông báo chỉ đóng thông báo và không đặt tiêu điểm trên cửa sổ. – Marko

6

Sử dụng chrome.tabs.update(tabId, {active: true}); để tập trung một tab (không bị nhầm lẫn với chrome.windows.update).

Các tabId thường thu được thông qua Tab type. Đối tượng này được truyền cho nhiều phương thức/trình lắng nghe sự kiện (đôi khi thông qua MessageSender type).

+0

Tôi muốn đảm bảo cả tab được đặt hoạt động và cửa sổ được lấy nét. Bạn có xảy ra để biết nếu nó là có hại để làm cả hai song song hoặc tôi nên đặt tab hoạt động đầu tiên, và sau đó thiết lập các cửa sổ tập trung trong gọi lại? –

2
function msg(){ 
    var notification = new Notification("Title", {body: "Yore message", icon: "img.jpg" }); 
    notification.onshow = function() { setTimeout(notification.close(), 15000); }; 
    notification.onclick = function(){ 
     window.focus(); 
     this.cancel(); 
    }; 
} 
msg(); 

Các vấn đề liên quan