2012-11-10 3 views
2

J'ai une extension chrome simple qui affiche une petite icône dans Google Chrome. Au clic, il charge une page de recherche de mon site, qui à terme vous redirige vers la bonne page.Extension Chrome avec page d'arrière-plan ne fonctionnant pas avec la version manifeste

https://chrome.google.com/webstore/detail/w3patrol-watch-over-any-w/addcgpijdjacmndaadfgcpbfinagiplm est l'extension.

Maintenant, Google me force à mettre à jour vers la version manifeste 2, au lieu de 1. Mais cela brise mon extension de travail.

Dans manifest.json J'ai ajouté manifeste_version 2, mais depuis, l'icône ne fonctionne plus lorsque je clique dessus.

{ 
    "background": { 
    "page": "background.html" 
    }, 
    "browser_action": { 
     "default_icon": "icon19.png", 
     "default_title": "__MSG_default_title__" 
    }, 
    "default_locale": "en", 
    "description": "__MSG_description__", 
    "icons": { 
     "128": "icon128.png", 
     "19": "icon19.png", 
     "48": "icon48.png" 
    }, 
    "name": "__MSG_name__", 
    "permissions": [ "tabs", "http://*.w3patrol.com/" ], 
    "update_url": "http://clients2.google.com/service/update2/crx", 
    "version": "1.0", 
    "manifest_version": 2 
} 

C'est background.html

<script type="text/javascript"> 
chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.getSelected(null,function(tab) { 
     chrome.tabs.create({ url: "http://w3patrol.com/search.php?q=" +tab.url }); 
    }); 
}); 

</script> 

Que dois-je ajouter/changer pour le faire fonctionner avec la version 2 manifeste?

+0

double possible de [Erreur port tout en changeant l'extension chrome de v1 à v2 manifeste] (http://stackoverflow.com/questions/11913575/port-error-while-changing-chrome -extension-from-manifest-v1-to-v2) –

Répondre

8

Vous avez juste besoin de retirer le tag de script de votre page d'arrière-plan. Voici comment background.js (au lieu de background.html) devrait ressembler à:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.getSelected(null,function(tab) { 
     chrome.tabs.create({ url: "http://w3patrol.com/search.php?q=" +tab.url }); 
    }); 
}); 

et supprimer la propriété « page » en arrière-plan. Ajouter 'scripts de propriété:

"background": { 
    "scripts": ["background.js"] 
    }, 
+0

Ça a marché! Merci mec. –

+0

Toujours heureux d'aider –

+0

Puis-je connaître l'utilisation de '" arrière-plan ": { " scripts ": [" background.js "] },' cette ligne .... s'il vous plaît répondez-moi vite !! –

Questions connexes