2013-02-18 5 views
2

나는 모든 것을 시도했지만 아무것도 나를 위해 작동하는 것 같습니다. 아래 코드와 같은 창이 닫히는 것을 감지하여 브라우징 닫음을 감지하려고했지만 그게 효과가 없습니다. 무엇이 잘못 되었습니까? Chrome 종료를 감지하는 또 다른 해결책이 있습니까?Chrome 브라우저 종료 감지?

chrome.windows.onRemoved.addListener(function(windowId){ 
    alert("Browser exit!"); 
}); 
+0

이 솔루션을 사용해 보셨습니까? http://stackoverflow.com/questions/9961544/chrome-detect-when-browser-exits – Danilo

+0

나는 확실히했다. 아무것도 작동하지 않습니다. Chrome이 확장 프로그램에서 빠져 나가는 것을 감지하려고 시도하는 코드에서 이것이 분명하지 않은지 언급해야합니다. – user436390

답변

2

귀하의 일반적인 문제는 브라우저를 종료하는 것은 아직 종료 한 경우 브라우저가 더 이상 확인하는 스크립트를 실행할 수 없다는 의미입니다 - 그것은 그들이 사망 한 경우 사람을 물어하려고 같다 : (만약 답을 당신은 하나를 얻는다.) "no"가 될 것이다.

가 크롬은 일찍 시작하고 앱 및 확장이 더 긴 수명을 가질 수 있도록, 후반 종료 만든다 : 당신이 시도 할 수

하나 개의 솔루션은 background permission와 장기 실행 배경 페이지입니다.

설치된 호스트 된 앱, 패키지 앱 또는 확장 프로그램에 "배경"권한이있는 경우 사용자가 Chrome을 시작하기 전에 사용자가 컴퓨터에 로그인하자마자 Chrome이 실행됩니다 (숨김). '배경'권한은 사용자가 Chrome을 명시 적으로 종료 할 때까지 Chrome을 마지막 창을 닫은 후에도 계속 실행합니다.

이 권한을 사용하면 모든 브라우저 창이 닫힌 후에도 Chrome에서 확장 프로그램을 계속 실행할 수 있습니다. 일반적으로 Chrome은 창을 열었을 때만 작업을 수행 할 수 있으므로 Chrome이 모든 창을 닫을 때를 감지하지 못하는 문제에 봉착합니다 (위에서 설명한 바와 같습니다). 백그라운드 승인을 통해 Chrome은 모든 창을 닫은 상태에서도 확장 코드를 실행할 수 있습니다.

+0

"배경 사용 권한"이란 무엇입니까? 다음과 같이 백그라운드 지속성을 의미합니까 : "배경": { "persistent": true, ...} – user436390

+2

@ user436390 죄송합니다. 잘못된 링크를 사용했습니다! 아니요, 권한은 실제로 "배경"(업데이트 된 링크 참조)이라고하며, 지속성과 다릅니다. – apsillers

+0

감사합니다. 나는 그것을 시도하고 곧보고 할 것입니다. – user436390

0

내 확장 프로그램이 전체 브라우저에서 종료 될 때 제어권을 얻으려고합니다. 내 확장 기능은 텍스트 상자를 독점적으로 사용하므로 onblur 속성을 함수로 설정하고 거기에 내 종료 코드를 입력하십시오. 아마 당신이 찾고있는 것이 아니지만 그것은 나를 위해 일합니다!

크롬 개발자 웹 사이트는 "메모리와 기타 리소스"로 인해 배경 페이지를 사용하지 않을 것을 권장합니다.

나는 확장 프로그램 종료에 대한 통제권을 얻는보다 일관된 방법이 유용 할 것이라고 동의합니다. 그렇지 않으면 DOM과 통합 된 HTML 페이지입니다.

0

크롬은 Chrome 브라우저를 감지하는 API를 제공하지 않으므로 닫습니다. 그러나 크롬 확장 기능을 사용하는 경우 배경 페이지에서 크롬 브라우저 열기 이벤트를 감지 할 수 있습니다. 크롬 브라우저가 시작됩니다 때

background.js

chrome.runtime.onStartup.addListener(function() { 
     console.log("extension started: " + Date.now()); 
    }); 

이 이벤트가 발생합니다. 다음으로 어떤 트릭을 사용해도 크롬 브라우저가 종료되었음을 알 수 있습니다.