크롬 확장 프로그램에서 각 탭과 함께 저장하려고하는 탭 속성을 만들었습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 localStorage를 사용하는 방법을 살펴 보았지만 더 쉬운 방법이있을 것 같다. 데이터는 결코 영구적 인 것이 아니며 탭이있는 한 존재합니다.Chrome 확장 프로그램은 각 탭에 속성을 첨부합니다.
답변
localStorage
을 사용할 필요가 없습니다. "데이터는 결코 영구적 인 것이 아닙니다"라는 개념이 없으면 탭 ID는 세션 내에서 고유합니다. 이 사실로부터, 데이터는 비 영구적이라는 것을 알 수 있습니다. 업데이트 탭 해시 (/ 추가) (URL -
chrome.tabs.onCreated
(옵션 탭 해시 초기 정보를 추가)chrome.tabs.onUpdated
:가장 좋은 방법은 탭 속성의 해시를 유지하는 것입니다 구현)
chrome.tabs.onRemoved
사용할 수 있습니다 -
Tab 객체가 비싸지 않다 해시 항목을 제거 : 모든 속성은 원시적 s (불린, 숫자, 문자열).
예를 들어(배경 페이지 만) : 롭 W의 대답에
var tabStore = {}; // <-- Collection of tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
tabStore[tabId] = tab;
});
chrome.tabs.onRemoved.addListener(function(tabId) {
delete tabStore[tabId];
});
어제 나 혼자서이 작업을 하려다가 로컬 스토리지로 어지러운 하루를 보낸 후에도 똑같은 결론에 도달했습니다. 다행히 나는 마침내 올바른 곳에서 끝났다는 것을 알았습니다! 감사합니다 :) –
각 "페이지 수명주기", onUpdated 두 번 ('changeInfo.status' :로드, 완료) 발사된다는 점에 유의하십시오. 따라서 페이지 변경 이벤트에서 한 번만 작동하려면 'if (changeInfo.status! ='loading ') {/*... 원하는대로 수행하십시오. * /}'와 같이 해당 이벤트 중 하나를 무시하십시오. –
고맙게도 나를 위해 (OP는 말할 수 없다) 나는 onUpdated 이벤트가 필요하지 않지만 좋은 정보는 :) –
중요 칙.
tabs.onReplaced도 수신 확인하고 그에 따라 tabStore를 업데이트하십시오.
chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) {
tabStore[addedTabId] = tabStore[removedTabId];
delete tabStore[removedTabId];
});
크롬은 경고 또는 표지판없이 후드 아래 탭의 ID를 변경할 수 있습니다. 내가 아는 한, 검색 주소창에 검색어를 입력 할 때 구글이 "즉석 검색"을하는 유일한 곳입니다. 그것은 가장자리 사건일지도 모르지만, 이것을 추적하지 않으면 매우 교활한 문제가 될 수 있습니다.
- 1. Python의 Chrome 확장 프로그램은 무엇입니까?
- 2. Chrome 확장 프로그램은 iframe에 액세스하나요?
- 3. Firefox, Chrome 하이브리드 확장 프로그램은 무엇입니까?
- 4. 기본적으로 모든 Chrome 확장 프로그램은 오픈 소스입니까?
- 5. Chrome 확장 프로그램은 포스트 백 후에 컨트롤을 추가하나요?
- 6. Chrome 확장 프로그램 : 팝업이 생성 된 후 초기 탭에 액세스하기
- 7. 브라우저 탭에 확장 페이지 표시
- 8. Chrome 확장 프로그램은 서로 통신 할 수 있습니까?
- 9. Chrome 확장 프로그램은 본문로드가 완료되기 전에 자바 스크립트를 삽입합니다.
- 10. Chrome 확장 프로그램은 이미지를 클립 보드에 복사 할 수 있습니까?
- 11. Gmail의 Chrome 확장 프로그램은 자동 저장 기능을 사용하여 삭제합니다.
- 12. Chrome 확장 프로그램은 로컬 저장소에 액세스 할 수 있나요?
- 13. 새 탭에 양식 게시 - Chrome 확장자
- 14. jquery 탭에 속성을 설정하는 방법
- 15. 크롬 확장 프로그램은
- 16. 사용자가 Chrome 확장 프로그램
- 17. Chrome 확장 프로그램으로 리디렉션
- 18. Chrome 확장 - sendRequest가 느림
- 19. Python을 사용하는 Chrome 확장
- 20. Chrome 콘솔 탭에 권한을 부여하는 방법이 있습니까?
- 21. Chrome 확장 프로그램의 Chrome 설정에 액세스
- 22. Chrome 확장 - 인스턴스 생성시 제어
- 23. Internet Explorer의 크롬 형 확장 프로그램은 무엇입니까?
- 24. 각 페이지에서 실행되는 firefox 확장
- 25. 업데이트시 Chrome 확장 프로그램이 다운됩니다.
- 26. Chrome 확장 프로그램에서 신뢰할 수있는 favicon을 얻는 중 Chrome : // favicon?
- 27. 크롬 확장 프로그램은 탭이 열린 탭을 기억합니다.
- 28. Chrome 확장 프로그램 - 이벤트 페이지 즉시 언로드
- 29. 비즈니스 인트라넷 용 비공개 Chrome 확장
- 30. Chrome 확장 프로그램에서 UDP 전송
"배열"을 만들면 키가 탭 ID이고 내용이 원하는 것입니다. –
그래, 실제로 작동 할 것입니다. 아마도 배열이 많은 탭과 함께 풍선하지 않도록 정리 된 탭에 정리 스크립트가 있어야합니다. – nathancahill