2017-03-28 2 views
0

내 manifest.json을이 블록에 포함 '일치'이벤트 핸들러가

"content_scripts": [ 
    { 
     "all_frames": true, 
     "matches": [ 
      "*://www.google.com/*", 
      "*://www.cnn.com/*", 
      "*://*.foxnews.com/*" 
     ], 
     "js": ["js/main.js"] 
     } 
    ], 

내가 해고 이벤트를 필요 (중 내 콘텐츠 JS 또는 background.js에, 아무튼 사용자가 이 아닌 웹 사이트를 방문 할 때마다이 내 matches 설정에있는 사이트 중 하나와 일치해야합니다.

어떻게 끝나나요?

답변

0

background.js에서 탭로드를 위해 수신기를 추가 할 수 있습니다. 여기에서 현재 탭의 URL을 가져 와서 목록과 일치시킬 수 있습니다.

chrome.tabs.onUpdated.addListener(function(tabId, info, tab) { 
    if (info.status == "complete") { 
     var url = tab.url.replace(/.*?:\/\//g, "").replace(/\/$/, ""); //removes the protocol 

     var allowedURLS = ["www.google.com", "www.cnn.com", "foxnews.com"]; 

     for(var i in allowedURLs) { 
      if(allowedURLs[i].indexOf(url) == -1) { 
       //URL does not match 

       break; 
      } 
     } 
    } 
}); 
0

당신은 그 아래 스크립트가 삽입되지 않습니다 말한다 콘텐츠 스크립트에 exclude_matches를 사용해야합니다. 구글 documentation에서

이 콘텐츠 스크립트는 달리 주입 될 수

제외 페이지를 참조하십시오. URL을 제외하는 방법에 대한 자세한 내용은 패턴 일치 및 문자열 일치 및 패턴 일치에 대한 자세한 내용은 패턴 일치를 참조하십시오. 귀하의 경우를 들어

:

"content_scripts": [ 
{ 
    "all_frames": true, 
    "matches": ["<all_urls>"], 
    "js": ["js/main.js"], 
    "exclude_matches": [ 
     "*://www.google.com/*", 
     "*://www.cnn.com/*", 
     "*://*.foxnews.com/*", 

    ] 

    } 
] 
관련 문제