내가 알 수있는 한, 확장 스크립트를 업데이트 할 때와 같이 콘텐츠 스크립트를 다시 삽입 할 수있는 자동 방법이 없습니다. URL이 원하는 패턴과 일치하는 모든 탭을 찾고 프로그래밍 방식으로 내용 스크립트를 다시 삽입하는 것은 chrome.tabs.executeScript
을 사용하는 것입니다.
이 메서드는 콘텐츠 스크립트에서 사용하는 것과 동일한 URL 패턴에 대한 사용 권한을 추가해야합니다.
의 manifest.json :
"content_scripts":
[
{
"matches": [ "http://*.google.com/*" ],
"js": [ "content_script.js" ]
}
],
"permissions":
[
"tabs", "http://*.google.com/*"
]
Background.js는 :
chrome.runtime.reload();
chrome.tabs.query({ url: "http://*.google.com/*" }, function(tabs)
{
for(var i = 0; i < tabs.length; i++)
{
chrome.tabs.executeScript(tabs[i].id, { file: "content_script.js" }, function() {});
}
});
문제이 기존의 문맥 그대로 둔다는 점입니다. 하나의 executeScript에서 setInterval을 시작하면 다음 executeScript 이후에도 계속 실행됩니다. –
두 번째 콘텐츠 스크립트가 두 번 실행되면 이전 변수에 액세스 할 수 있으므로 모든 것을 재설정 할 수 있습니다. –
@ Metoule 'chrome : // extension'에서 확장을 다시로드 한 후에 주입 할 때 이전 변수에 액세스 할 수 없습니다. 이거 테스트 해봤 니? – vaughan