2017-02-09 4 views
1

Я думал, что это будет вопрос, который будет регулярно задаваться, но я не могу найти ответ на него. Есть ли способ для расширения chrome, чтобы всплывающее окно браузера было доступно только на страницах, соответствующих контенту?Действие браузера для активации только на совпадениях «content_script»

Например: я делаю расширение для сайта. Я хочу, чтобы всплывающее окно было доступно только при просмотре сайта (на текущей вкладке). Как мне это сделать?

Для меня действие браузера всегда включено по умолчанию, на любой странице, которую я просматриваю, и действие страницы никогда не включается.

Спасибо за вашу помощь

EDIT: Вот часть манифеста, я изменился с pageAction без успеха. Я хочу, чтобы мой значок активировался только на вкладках, просматривающих LDLC.

{ 
    "content_scripts": [ 
    { 
     "js": [ "jquery.min.js", "scrooge.js" ], 
     "matches": [ "*://www.ldlc.com/fiche/*", "*://ldlc.com/fiche/*" ] 
     }], 

    "manifest_version": 2, 

    "permissions": [ "storage", "activeTab","*://ldlc.com/*", "*://scroogealpha.esy.es/*" ], 

    "page_action": { 
      "default_title": "Worth buying?",  // optional; shown in tooltip 
      "default_popup": "popup.html"  // optional 
    }, 

    "web_accessible_resources": [ 
    ], 
    "background":{ 
    "scripts" : ["eventPage.js"], 
    "persistent": false 
    } 
} 
+0

См. [DeclarativeContent API] (https://developer.chrome.com/extensions/declarativeContent). – wOxxOm

ответ

0

Используйте действие страницы и в фоновом режиме прослушайте изменения вкладок. Когда URL-адрес вкладки изменяется, проверьте, хотите ли вы показывать действие страницы.

В вашем фоне скриптом сделать что-то вроде этого:

let matches = ["://www.ldlc.com/fiche/", "://ldlc.com/fiche/" ] 
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { 
    for (let i in matches) { 
     if (tab.url.includes(matches[i])) { 
      chrome.pageAction.show(tabId) 
      break 
     } 
    } 
}) 

добавить также разрешение вкладки в манифесте.

+0

Я использовал страницу сценария события, а не фоновый скрипт, кажется, имеет смысл для этого использования – yhu420