CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JS/Chrome] Fonctions déjà présentes

SeismeEnEspagne
SeismeEnEspagne
Niveau 4
23 avril 2012 à 01:19:20

Bonjour,

Je commence à créer une première extension pour Google Chrome et j'ai un soucis.

Mon extension consiste simplement à injecter une ligne javascript dans une page web spécifique :
alert('test');

La page web contient déjà des scripts en JS, par exemple une fonction display_texte() qui affiche un texte donné.

J'aimerais à l'aide de mon extension faire :
display_texte();

Cependant, cela ne fonctionne pas. Avec F12, Chrome me dit que la fonction display_texte n'existe pas.

Forcément puisque la fonction provient de la page et pas mon extension directement.

Comment faire alors pour utiliser les fonctions déjà présentes dans les pages où j'injecte du javascript ?

Merci d'avance.

SeismeEnEspagne
SeismeEnEspagne
Niveau 4
23 avril 2012 à 01:19:56

Forcément puisque la fonction provient de la page et pas DE* mon extension directement.

vava740
vava740
Niveau 10
23 avril 2012 à 12:46:05

Malheureusement tu ne pourras pas, c'est une sécurité des extensions Google Chrome. Les scripts que tu exécutes sont encapsulés et exécutés en surcouche sur ta page, mais tu n'as accès à aucune fonction ni variable de la page originale, et vice versa. :ok:

Tout est dit sur le site de Google, regarde plus particulièrement la partie "Execution environment" de cette page :

http://code.google.com/chrome/extensions/content_scripts.html

SeismeEnEspagne
SeismeEnEspagne
Niveau 4
23 avril 2012 à 13:46:34

C'est étrange.

Depuis n'importe quel client, en allant sur la page web, on peut taper dans la barre d'adresse :
javascript:display_texte();

Et cela marche ...

Je ne comprends pas pourquoi une extension ne pourrait pas simuler ce proccessus. Et je reste dubitatif.

N'y aurait-il pas un moyen d'y arriver tout de même ?

vava740
vava740
Niveau 10
23 avril 2012 à 14:22:11

C'est pourtant assez clairement expliqué sur le site de Google, y'a pas moyen :(

Le script que tu injecte avec l'extension est pas exécuté dans le même environnement qu'un script que tu injecte manuellement dans la barre d'adresse ou dans la console de développement que ton navigateur. C'est un fait. :ok:

Après tu peux tester depuis l'extension, de modifier le location.href en mettant ton javascript:display_text(), mais c'est un peu de la bidouille...

SeismeEnEspagne
SeismeEnEspagne
Niveau 4
23 avril 2012 à 18:27:27

"mais c'est un peu de la bidouille"
C'est exactement ce que je cherchais, un moyen d'arriver quand même à mes fins :)
Ce genre de bidouille n'apporte rien de mal et fonctionne :ok:

Merci !

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment