2017-09-21 1 views
0

Objectif est d'injecter un script de contenu dans un script de page d'événement dans l'extension google chrome sans menu contextuel lorsque le bouton est cliqué. message d'erreur actuelle estchrome exécuter exécuter script ne fonctionne pas avec content_script

tabs.executeScript: Cannot access a chrome:// URL 

Dans le content_script une demande de récupération est faite, si vous avez des conseils à ce sujet également, il serait grandement apprécié.

contenu page événement Script

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

Manifest

{ 
    "manifest_version": 2, 

    "name": "Seneca One add Bookmark", 
    "description": "Posts URL to database.", 
    "version": "2.0", 
    "background": { 
    "scripts": ["eventPage.js"], 
    "persistent": false 
    }, 
    "browser_action": { 
    "default_icon": "[email protected]", 
    "default_title": "Add bookmark" 
    }, 
    "content_scripts": [ 
    { 
    "matches": ["http://*/*"], 
    "js": ["content_script.js"] 
    } 
], 
    "permissions": [ 
    "activeTab", 
    "storage", 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ] 
} 
+2

L'erreur indique que vous essayez d'injecter le script de contenu sur une page chrome: // intégrée, ce qui n'est pas autorisé. – wOxxOm

+0

Essayez [cette solution] (https://stackoverflow.com/a/46158196/6586663). – PredatorIWD

Répondre

0

@woxxom est correct quand il dit que vous ouvrez un script sur une extension de chrome. Faites un popup.html avec l'action du navigateur, puis faites-le tourner puis fermez-le instantanément. Assurez-vous que votre popup.js est dans le default_script: popup.js dans votre manifeste. Ensuite, vous pouvez créer un arrière-plan {persistent: true} dans votre manifeste pour que votre script fonctionne en arrière-plan sur chaque page et écoute votre recherche. Donc essentiellement le même effet de ce que vous cherchez. Vous cliquez sur l'icône votre popup.html/popup.js exécute le fetch/disparaît instantanément, tandis que votre arrière-plan js s'exécute en arrière-plan répondant.