Comment puis-je faire page_action apparaissent pour des pages spécifiques?
J'ai été jouer avec certaines extensions de chrome et j'ai trouvé ça par exemple:http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/
Tout fonctionne bien, mais j'ai envie de créer ma propre extension et je veux voir le page_action Icône sur un site spécifique, et non à ceux avec le " g " dans leur url.
Alors j'ai tout simplement essayé de modifier le script à partir de ceci:
//Copyright (c) 2011 The Chromium Authors. All rights reserved.
//Use of this source code is governed by a BSD-style license that can be
//found in the LICENSE file.
//Called when the url of a tab changes.
function checkForValidUrl(tabId, changeInfo, tab) {
//If the letter 'g' is found in the tab's URL...
if (tab.url.indexOf('g') > -1) {
//... show the page action.
chrome.pageAction.show(tabId);
}
};
//Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);
Dans cette:
chrome.pageAction.show(tabId);
Mais maintenant ça ne fonctionne pas...
Je n'ai pas l'obtenir. Évidemment, je peux utiliser une solution de contournement, mais ce n'est pas le point... tout d'Abord, dois-je créer une page d'arrière-plan pour ce faire? Je pense que oui mais je ne vois pas pourquoi, et pourquoi l' .montrer méthode ne fonctionne pas seul?
J'ai essayé de chercher dans google documents et d'autres choses, mais je ne pouvais pas trouver quelque chose d'utile, je ne suis pas expert, et cela a été mon premier après-midi passé sur google l'extension, mais comment je sais que la "google chrome.page.show(tabId)" doit aller dans une page d'arrière-plan si ce n'est pas écrit n'importe où? Pas l'intention de critiquer, mais comment diable avez-vous les gars, vous trouvez? Tous chrome méthodes doivent aller dans une page d'arrière-plan?
Eh bien, certainement beaucoup plus de questions alors que sa pièce de théâtre. J'espère que vous pourrez me donner au moins une réponse!
tabId
?OriginalL'auteur Treferwynd | 2012-02-11
Vous devez vous connecter pour publier un commentaire.
http://code.google.com/chrome/extensions/pageAction.html
...dit...
Donc, même si votre tabid était valide, il allait disparaître assez rapidement comme le votre ne fonctionne
chrome.pageAction.show(tabId);
une fois lorsque l'arrière-plan de la page commence par exécuter.Vous devez rechercher les modifications sur les onglets en arrière-plan en permanence parce que pageactions n'avez pas de matches/exclude_matches paramètres dans le manifeste que le contenu des scripts de faire (dommage). Donc vous devez vérifier vous-même et de réagir aux changements.
Si vous souhaitez travailler pour un site spécifique juste de le changer pour quelque chose comme...
Mmh, vous pouvez répondre à cette question: en Supposant que bg.js est le fichier qui contient (et contient uniquement) le code que j'ai cité (ou celui que vous avez cité). Pourquoi si j'écris ceci: <script src="bg.js"></script> dans la background.html il fonctionne, mais si j'essaie d'écrire directement le code dans background.html il n'en a pas?
Ma conjecture est que vous avez
"manifest_version": 2
dans votre fichier de manifeste, qui empêche inline <script> bloque...code.google.com/chrome/extensions/trunk/... ..donc soit utiliser<script src="bg.js"></script>
dans un background.html ou supprimer le"manifest_version": 2
dans votre manifeste, ou de changer l'arrière-plan de la partie du manifeste trop"background": { "scripts": ["bg.js"] }
...na sais que vous pourriez faire à la dernière, jusqu'à tout à l'heure.Et encore, vous êtes sacrément droite. Merci beaucoup! Je suis content que vous avez trouvé quelque chose de nouveau tout en répondant à moi, il n'est donc pas une complète perte de temps pour vous! 😀
OriginalL'auteur PAEz
Pour ceux qui recherchent un moyen de gérer les sous-domaines, si vous avez un site avec un sous-domaine comme blog.specificsite.com, ou le besoin d'utiliser des caractères génériques, vous pouvez également utiliser des regex dans ce format
pour correspondre à la sous-chaîne dans l'URL. Elle permet aussi le calcul à faire un null/undefined vérifier pour éviter les surcoûts de gestion des exceptions.
OriginalL'auteur Chris - Jr