我試圖重寫webkitNotifications.createNotification的默認功能,並通過Chrome擴展我可以在頁面DOM中注入一個腳本,這樣做。我現在遇到的問題是我需要訪問網頁DOM中的chrome.extension.sendRequest
,以便將我的請求推送到已嵌入後臺頁面的NPAPI。我以前在內容腳本的執行過程中在每個頁面上呈現了嵌入對象 - 但是如果NPAPI嵌入在沒有注入每個頁面的擴展中,則認爲它更有效(且安全)。從頁面訪問NPAPI DOM
if (window.webkitNotifications)
{
(function()
{
window.webkitNotifications.originalCreateNotification = window.webkitNotifications.createNotification;
window.webkitNotifications.createNotification = function (iconUrl, title, body) {
var n = window.webkitNotifications.originalCreateNotification(iconUrl, title, body);
n.original_show = n.show;
n.show = function()
{
console.log("Chrome object", chrome);
console.log("Chrome.extension object", chrome.extension);
chrome.extension.sendRequest({'title' : title, 'body' : body, 'icon' : iconUrl});
}
return n;
}
})();
}
這就是在DOM中注入的腳本元素。後臺頁面如下:
<embed type="application/x-npapiplugz" id="plugz">
<script>
var osd = document.getElementById('plugz');
function processReq(req, sender, callback)
{
osd.notify(req.title, req.body, req.image);
console.log("NOTIFY!", req.title, req.body, req.image);
};
chrome.extension.onRequest.addListener(processReq);
</script>
我能夠從它這真的真棒傢伙得到一些幫助一個不錯的主意。但基本上這是如何完成的。感謝您的時間! [Chromify-osd](http://launchpad.net/chromify-osd) – 2011-01-08 22:33:03