J'ai une extension chromée qui s'accroche dans les devtools. Idéalement, je veux un badge qui, lorsque vous cliquez dessus, ouvre les devtools sur le nouvel onglet que j'ai créé. Est-il possible de le faire à partir de la page d’arrière-plan?
Réponses
Trop de publicités?Il semble peu probable que cela soit possible ou le deviendra jamais,
vérifiez ceci: https://code.google.com/p/chromium/issues/detail?id=112277
qui dit: "Nous n'autorisons que l'ouverture explicite de devtools."
Oui, vous pouvez (ou non) utiliser les API expérimentales chrome.experimental.webInspector
.
http://code.google.com/chrome/extensions/experimental.html
Vous pouvez même en changer le contenu et les panneaux.
Notez que vous ne pourrez pas soumettre d’extensions utilisant des API expérimentales.
C'est un peu hacky mais je pense qu'il vaut la peine d'essayer.
Une fois que vous avez créé un nouvel onglet injecter le contenu suivant script dans la page;
(function () {
var event = document.createEvent('KeyboardEvent');
event.initKeyboardEvent(
'keydown', // event type
true, // can bubble
true, // can be canceled
window, // view
'U+0049', // keyboard identifier for "I"
KeyboardEvent.DOM_KEY_LOCATION_STANDARD, // standard location
'Control Shift' // modifiers
);
if (!document.dispatchEvent(event)) {
// Was canceled, you're screwed
console.log('Canceled');
} else {
// Can you see the web inspector?
console.log('Success');
}
})();
Il va tenter de le feu la touche de raccourci associée avec le Développeur de l'élément de menu outils. Malheureusement, ce n'est pas listée dans google Chrome, la section d'aide , mais vous pouvez le voir sur votre installation que c'est Ctrl+Shift+I
. Vous aurez besoin de vérifier si l'utilisateur est sur Mac et modifier les touches en conséquence, mais ce n'est pas dur.
Je ne suis pas sûr si cela va fonctionner et je n'ai pas le temps de tester ce droit maintenant, mais je suis très curieux de voir si elle n'.
Il pourrait également être utile pour en savoir plus sur l'événement.initKeyboardEvent (et peut-être même de l'événement.initKeyEvent) pour ne pas vous faire jeter parce que j'ai donné a utilisé un faux argument, dans mon petit mock up.
Bonne chance!
EDIT:
Comme @Derek l'a souligné, event.initKeyEvent
est uniquement pris en charge par FireFox. Toutefois, event.initKeyboardEvent
fonctionne avec google Chrome. J'ai mis à jour le code, même si cela ne fonctionne toujours pas. Il enregistre "Succès" sur la console, mais il ne déclenche pas l'inspecteur web de l'affichage. Je ne suis qu'à la mise à jour de ce post comme il peut, nous l'espérons aider les autres à trouver une solution.