Google Chrome "Shortcut d'application": comment charger automatiquement JavaScript?

introduction
Google chrome possède une fonctionnalité qui vous permet de créer des raccourcis vers des pages Web et de les faire apparaître comme des applications de bureau traditionnelles.

Par exemple, un raccourci vers twitter mobile pourrait être

C:\Users\<username>\AppData\Local\Google\Chrome\Application\chrome.exe --app=https://mobile.twitter.com/ 

L'icône du fichier pour cette application est stockée dans

 C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Web Applications\mobile.twitter.com\https_80 

Ma question
Cela fait longtemps que j'ai utilisé cette fonctionnalité et je me souviens bien que vous pouvez ajouter vos propres fichiers JavaScript au dossier de l'application qui ont été inclus lors de la chargement de l'application. Cependant, je ne trouve aucune documentation qui traite de cette fonctionnalité, mais je suis certain qu'elle existe 99%.

Quelqu'un at-il des détails si cette fonctionnalité est disponible et quels fichiers je dois créer?

Clarification

J'invite essentiellement une page Web à utiliser le «raccourci d'application» de Chrome et je souhaite que cette page Web se rafraîchisse toutes les x secondes. Cependant, je n'ai aucun contrôle sur cette page Web.

Je suis sûr que dans les anciennes versions de Chrome, cela était possible … à moins que je ne sois en colère.

Les extensions Chrome et leurs scripts de contenu sont également chargés lorsque Chrome démarre en mode App.

Ainsi, vous pouvez créer une extension simple, qui injecte le code JavaScript dans la page comme suit:

1. Créez un fichier manifest.json :

 { "name": "Run code on twitter mobile", "version": "1.0", "manifest_version": 2, "content_scripts": [{ "js": ["contentscript.js"], "matches": ["http://mobile.twitter.com/*"] }], "web_accessible_resources": ["script.js"] } 

2. Le script de contenu

Ensuite, créez un fichier appelé contentscript.js et ajoutez le code JavaScript souhaité.
Ce script est inclus à chaque chargement de la page associée. Toutes les méthodes DOM, via l'objet du document , sont directement disponibles. Cependant, window et document.defaultView ne pointent pas vers l'objet window dans la page [source] .

Si vous souhaitez accéder à des méthodes ou des propriétés globales, vous devez créer dynamiquement un <script> et l'injecter dans la page (voir Création d'une extension Chrome – Injecter un code dans une page à l'aide d'un script Content ).

contentscript.js

 var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s); s.onload = function() { s.parentNode.removeChild(s); }; 

3. Le script qui sera injecté.

Ensuite, créez un fichier appelé script.js et placez-le dans le même dossier que manifest.json et contentscript.js . Le code dans script.js s'exécute comme s'il s'agissait d'une partie vraie de la page affectée.

La référence pour les scripts de contenu est disponible ici .

Je suppose que vous souhaitez inclure un javascript pour faire un «lancement» de l'application, peut-être pour redimensionner la fenêtre lors du chargement de votre URL cible?

Voici quelque chose que vous pourriez faire, comme cela a été suggéré dans cette publication

Créez une page Html localement contenant le javascript que vous devez exécuter.

Modifiez ceci: C:\Users\<username>\AppData\Local\Google\Chrome\Application\chrome.exe --app=https://mobile.twitter.com/

pour ça:

C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\Application\chrome.exe” –app=file:///C:/Documents%20and%20Settings/<username>/My%20Documents/My %20Custom%20Shortcuts/twitter_mobile_launcher.html

Et votre fichier twitter_mobile_launcher.html ressemblerait à ceci:

 <html> <head> <script type="text/javascript"> // Do what you need with your javascript, for example, resizing your window... window.resizeTo(300,400); window.moveTo(300,0); window.location = "https://mobile.twitter.com/"; </script> </head> <body> <h1>If you see this, the redirect did not work properly.</h1> </body> </html>