2

사용자가 버튼을 통해 Chrome 콘텐츠 스크립트를 활성화/비활성화 할 수있게하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 chrome.browserAction을 사용하는 것입니다.Chrome 콘텐츠 스크립트 (De)/활성화

하지만이 버튼을 누르면되지 않거나 스크립트에 상관없이 실행되는 background.html에

chrome.browserAction.onClicked.addListener(function(tab) { 
chrome.tabs.executeScript(null, {file: "script.js"}); 
}); 

를 추가합니다. 나머지 스크립트는 제대로 실행 중입니다. 유일한 문제는 브라우저 버튼입니다. 문제가있는 모든 아이디어가 있습니까? 감사합니다.

답변

1

contentScriptbrowserAction 또는 pageAction과 다릅니다. 콘텐츠 스크립트로 manifest.json에로드 된 경우 페이지의 <script> 태그에 포함 된 것처럼 실행됩니다.

내용 스크립트에서 Chrome message passing API을 사용하여 background.html의 변수를 확인하거나 더 적합한 기능에 따라 pageAction으로 스크립트를로드 할 수 있습니다.

0

코드가 백그라운드 페이지에서 콘텐츠 스크립트를 실행한다는 사실을 알고 있습니까?

chrome.browserAction.onClicked.addListener(function (tab) { 
     chrome.tabs.executeScript(null, { 
      file: "script.js" 
     }); 
    }); 

이 코드는 브라우저 아이콘이 탭에서 클릭 될 때마다 실행되며 배경 페이지에서 실행됩니다.

달성하고자하는 것은 무엇입니까?

+0

방문한 모든 웹 사이트의 DOM을 수정하는 스크립트가 있습니다. 나는 사용자에게 스크립트의 아이콘을 통해 단순히 켜거나 끌 수있는 기능을 제공하여 수동으로 활성화/비활성화 할 필요가 없도록하고 싶다. – Peter

+0

@ 피터 : 어떻게 스크립트 삽입을 비활성화 할 계획입니까? – Sudarshan

+0

솔직히 말해서 나는 꽤 멍청하다. 따라서 스크립트 삽입을 활성화하는 것과 비슷할 것으로 기대하고있었습니다. – Peter