2011-08-15 13 views
0

Chrome 용 확장 프로그램을 만들고 있으며, 최종 사용자가 사람들을 연락처로 추가 할 수있는 기능 중 하나입니다.알림 내에서 알림 만들기

현재 연락처는 AJAX를 통해 데이터베이스에 저장되고, 그 후에 증서 작성이 완료되었음을 알리는 바탕 화면 알림이 표시됩니다.

그러나 먼저 사용자에게 그가 그렇게하고 싶어하는지 묻고 싶습니다. 그래서 알림 내에서 새로운 알림을 만들고 싶다는 미친 생각이 들었습니다.

그래서 먼저 확인 HTML 알림이 background.html에서 만들어져 표시됩니다. 여기에는 버튼이 포함되어 있으며이를 클릭하면 AJAX 기능이 실행되고 피드백이 포함 된 두 번째 알림이 생성됩니다.

그러나 나는 이것을 할 수없는 것 같습니다. sendRequest()는 createNotification()을 실행할 수 없습니다. sendRequest()는 어느 것도 통과하지 못하는 것 같아서 background.html에서 onClose 리스너를 사용할 수 없습니다. "예"버튼을 클릭하는 것과 구별해야하기 때문입니다. 및 "아니오"버튼을 누릅니다.

내가 할 수있는 방법이 있습니까? 그렇지 않은 경우 확인 대화 상자를 대신 구현하는 방법은 무엇입니까?

+0

HTML을 모두 같은 알림으로 작성하고 사용자 선택에 따라 업데이트 (숨기기/표시) 해 보았습니까? –

답변

1

chrome.extension.getBackgroundPage()을 사용해 보셨습니까? 이렇게하면 필요한 백그라운드 페이지 API에 대한 액세스가 제공 될 수 있습니다. 예를 들어 을 클릭하면 첫 번째 알림 페이지가 다음을 호출합니다.

배경 페이지는 showSecondNotification 메서드를 다음과 같이 선언합니다.

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

두 번째 알림이 표시되기를 바랍니다. 이전에 내 확장 프로그램에서 비슷한 방법을 사용했지만 배경 페이지에서 정보를 검색하는 경우에만 사용했습니다. 그러나 이것이 작동해서는 안되는 이유는 없습니다.

+0

이전에 getBackgroundPage()를 사용해 보았지만 작동하지 않았습니다. 그러나 코드를 복사하는 작업은 놀라운 일이었습니다. 고맙습니다! 알림 내에서 스크립트를 디버깅 할 수있는 방법이 있습니까? 왜냐하면 존재한다면, 나는 그것을 발견하지 못했을 것입니다. –

+0

도움이 된 것을 기쁘게 생각합니다. 불행히도, 나는 그들을 디버깅하는 방법을 생각할 수 없다. 그러나 알림이 열려있는 경우에만 알림에서 JavaScript를 사용하여 즉시 닫을 수 있습니다. – Alasdair