Ajout de fonctionnalités personnalisées dans la console Chrome

Est-il possible d'avoir des fonctions personnalisées dans google-chrome qui seront toujours disponibles dans la console (quelle que soit la page chargée)? Par exemple, j'aimerais avoir une fonction appelée echo qui serait juste un wrapper autour de console.log. Cela enregistre simplement un peu de typage, mais plus tard, je voudrais peut-être créer des fonctionnalités de débogage utiles.

Bien, c'est assez facile à accomplir. Ce dont vous avez besoin, c'est de créer un script de contenu . Ce script serait injecté dans n'importe quelle page et crée certaines fonctions globales nécessaires que vous utiliserez dans votre console. La partie la plus difficile est la façon de rendre ces fonctions de scrutine de contenu personnalisées pour faire partie de votre objet de window réel, car normalement, vous ne pouvez pas accéder aux fonctions ou aux variables que vous définissez dans votre script de contenu à partir du reste du code javascript qui n'est pas dans le contenu scénario. Les scripts de contenu s'exécutent dans des environnements dits isolés.

Les scripts de contenu s'exécutent dans un environnement spécial appelé monde isolé. Ils ont accès aux DOM de la page dans laquelle ils sont injectés, mais pas aux variables ou fonctions JavaScript créées par la page. Il correspond à chaque script de contenu comme s'il n'existait aucun autre JavaScript exécuté sur la page sur laquelle il s'exécute. La même chose est vraie en sens inverse: JavaScript en cours d'exécution sur la page ne peut appeler aucune fonction ni accéder à aucune variable définie par les scripts de contenu.

Mais il y a une solution de rechange fantastique.
Vous définissez votre fichier de manifeste comme suit:

Manifest.json

 { "name": "Content script", "version": "0.1", "manifest_version": 2, "content_scripts": [{ "matches": ["http://*/*"], "js": ["console.js"] }] } 

Ddd illustr sav illustrFMMMMMMMMMMMMMMMMMMMMMMMMMM

Ddd illustrcome Marco illustr Marco

 function customConsole() { window.myNewFunction = function() { console.log("Hello I'm available from console."); }; } var script = document.createElement('script'), code = document.createTextNode('(' + customConsole + ')();'); script.appendChild(code); (document.body || document.head || document.documentElement).appendChild(script); 

Vous devez donc spécifier vos nouvelles fonctions comme fonctions globales afin que vous puissiez les utiliser dans la console .
Jetez un coup d'oeil à cette publication