2010-08-21 24 views

Trả lời

2

Có, thông báo sử dụng API cụ thể của Chrome và tập lệnh nội dung chỉ hợp lệ cho javascript chung ... background page là nơi tất cả API cụ thể của Chrome đều có khả năng chạy ... Trước tiên, bạn cần phải đăng ký nền của mình trang trong file manifest.json - như thế này:

"background_page": "background.html", 

Cũng trong file manifest, Cho phép các điều khoản yêu cầu:

"permissions": [ "notifications" ], 

Sau đó, kịch bản của bạn trong trang nền sẽ giống như sau:

<script> 
setTimeout("setNotification();",1); 
function setNotification(){ 
    var n 
    if (window.webkitNotifications.checkPermission() != 0){ 
    setNotification(); 
    return false; 
    } 
n = window.webkitNotifications.createHTMLNotification('http://www.your-notification-address.com'); 
n.show();} 
</script> 
+0

lớn .. Cảm ơn bạn David :) – sharath

+0

Nếu bạn đặt permiss các ion cho thông báo trong tệp kê khai tiện ích của bạn, bạn không cần phải kiểm tra quyền. http://code.google.com/chrome/extensions/notifications.html – npdoty

+1

Không thực sự giải thích cách bạn có thể hiển thị thông báo trên màn hình bắt nguồn trên tập lệnh nội dung. –

8

Bạn không thể hiển thị thông báo trực tiếp thông qua tập lệnh nội dung. Nhưng, bạn có thể hiển thị chúng thông qua trang nền.

Bạn manifest.js nên tìm một cái gì đó như thế này:

{ 
"name": "Notify This", 
"version": "0.1", 
"permissions": [ 
    "notifications" 
], 
"background_page": "background.html", 
"content_scripts": [ 
    { 
    "matches": ["http://www.example.com/*"], 
    "js": ["contentscript.js"] 
    } 
] 
} 

Sau đó sử dụng chrome.extension.sendRequest():

// in your contentscript.js 
chrome.extension.sendRequest({msg: "Sup?"}, function(response) { // optional callback - gets response 
    console.log(response.returnMsg); 
}); 

Và vào cuối nhận bạn nên có một người biết lắng nghe onRequest:

// in your background.html 
    chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 

     // Create a simple text notification: 
    var notify = webkitNotifications.createNotification(
     '48.png', // icon url - can be relative 
     'Hello!', // notification title 
     request.msg // notification body text 
    ); 

    notify.show(); 

    setTimeout(function(){ notify.cancel(); },5000); 
    sendResponse({returnMsg: "All good!"}); // optional response 
    }); 
+0

Cảm ơn tôi cuối cùng đã làm việc như thế này. Họ cũng có thể chỉ cho phép thông báo trên màn hình từ tập lệnh nội dung. Mọi người cảm thấy khó chịu với Apple về các API đã đóng này, nhưng nó không giống như Google, nơi trang web có nghĩa là cởi mở hơn ... –

+0

Đây là câu trả lời tôi hy vọng nhận được, dựa trên tiêu đề của câu hỏi. Cảm ơn! –

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