2011-08-15 101 views
0

我正在爲Chrome創建擴展程序,其中包含的功能之一是最終用戶可以將人員添加爲聯繫人。從通知中創建通知

當前,通過AJAX將聯繫人保存到數據庫,之後會顯示一個桌面通知,告訴用戶該活動已完成。

但是,我想先詢問用戶他是否確定要這樣做。所以我有一個瘋狂的想法,想從通知中創建一個新的通知。

首先,確認HTML通知將從background.html創建並顯示。它包含一個按鈕,點擊它後,它應該運行AJAX功能並創建第二個包含反饋的通知。

但是,我似乎無法做到這一點。我無法從通知中運行createNotification(),sendRequest()似乎也沒有經過,並且我無法使用background.html中的onClose偵聽器,因爲我想區分單擊「是」按鈕和「否」按鈕。

有什麼辦法可以做到這一點?如果不是,應該如何實施確認對話?

+0

您是否嘗試將所有HTML編寫爲相同的通知並根據用戶的選擇更新(隱藏/顯示)? –

回答

1

您是否嘗試過使用chrome.extension.getBackgroundPage()?這可以提供訪問您所需的背景頁面的API。例如,當點擊時,您的第一個通知頁面會調用以下內容:

function yesClicked() { 
    chrome.extension.getBackgroundPage().showSecondNotification(); 
} 

後臺頁面聲明showSecondNotification方法如下;

function showSecondNotification() { 
    webkitNotifications.createHTMLNotification(
     chrome.extension.getURL('notification2.html') 
    ).show(); 
} 

希望這會導致顯示第二個通知。我之前在擴展中使用了類似的方法,但僅用於從後臺頁面檢索信息。不過,我認爲沒有理由不應該這樣做。

+0

我早些時候嘗試過使用getBackgroundPage(),但它不起作用;然而,copypasting你的代碼奇妙地工作。謝謝! 有什麼辦法可以在通知內調試腳本嗎?因爲如果有的話,我確定沒有找到它。 –

+0

我很高興它有幫助。不幸的是,我想不出任何方法來調試它們。但是,如果您只想知道它們已打開,則可以在通知中使用JavaScript來立即關閉它們。 – Alasdair