2009-12-13 6 views
1

Je suis en train d'utiliser l'API Google Bookmarks pour Chrome Extensions (ce qui est pas l'API Google Bookmarks comme dans http://www.google.com/bookmarks/, mais plutôt Chrome Bookmarks API).extensions Google Chrome, ne répond pas à des événements Bookmark

Quoi qu'il en soit, j'ai juste essayé un exemple simple que j'ai le background.html et le manifest.json énumérés ci-dessous. Cependant, je n'obtiens pas la boîte de dialogue d'alerte. Je ne reçois pas ce problème si je passe à l'utilisation des événements d'onglet. Qu'est-ce que je fais mal?

manifest.json

{ 
    "name": "Google Bookmark Integration", 
    "version": "1.0", 
    "description": "Integrates Chrome bookmarks with Google Bookmarks.", 
    "icons": { "128": "images/bookmark.ico" }, 
    "background_page": "background.html", 
    "permissions": [ 
     "bookmarks", 
     "http://*.google.com/bookmarks/*" 
    ] 
} 

background.html

<script> 
    chrome.bookmarks.onCreated.addListener(function(id, bookmark) { 
     console.log("Bookmark Created"); 
    }); 
</script> 

Répondre

1

Pour répondre à ma propre question, le problème ici était que, non seulement les autorisations doivent être définies sur "bookmarks", mais aussi sur "tabs". Une fois que j'ai fait cela, le plug-in a ensuite reconnu l'ajout et la suppression de signets. Très contre-intuitif, mais c'est la solution.

+0

Intéressant. Je ne peux pas reproduire, mais j'utilise peut-être une version plus récente. Peut-être déposer un bug à http://crbug.com - assurez-vous de mentionner votre version exacte de Chrome et quelle plateforme (Windows, Linux, etc.). – dmazzoni

1

JavaScript est typé dynamiquement et définitions de fonction ne doit pas avoir des noms de type. Au lieu de (id de chaîne, signet BookmarkTreeNode), vous devez écrire just (id, bookmark). Votre background.html devrait être:

<script> 
    chrome.bookmarks.onCreated.addListener(function(id, bookmark) { 
     alert("Dialog Box");  
    }); 
</script> 

En outre, apparemment Chrome a un soutien limité pour recevoir une alerte() à l'intérieur des extensions. (Cela a fonctionné pour moi dans ce cas particulier, mais j'ai maintenant trouvé d'autres cas où ce n'est pas le cas.) Essayez plutôt console.log(). La page de documentation de Chrome Extensions sur le "débogage" contient des instructions sur la façon d'ouvrir la console Outils de développement/JavaScript pour la page background.html, ce que vous devrez faire.

+0

Nous vous remercions de votre réponse. Malheureusement, cela ne résout pas le problème. En outre, si j'utilise un code similaire, mais pour les onglets (y compris les noms de type), cela fonctionne très bien. – JasCav

+0

Vérifiez à nouveau. Je l'ai juste essayé sur le dernier canal de développement Chrome et ça marche très bien. Avez-vous une faute de frappe ailleurs? Avez-vous vérifié l'inspecteur pour les erreurs javascript? – dmazzoni

+0

@dmazzoni - J'ai exactement ce que vous avez, plus le fichier manifeste, et je ne reçois pas de boîte d'alerte lorsque je crée un nouveau signet. Comment créez-vous le signet? J'essaye de le faire en cliquant sur l'étoile à côté de la barre d'adresse. – JasCav

Questions connexes