11548 sujets

JavaScript, DOM et API Web HTML5

Pages :
Bonjour,

Est-il possible d'agir sur un champ textarea depuis une iframe distante.

Je m'explique :

J'ai créé une iframe appelé depuis un autre domaine avec différents texte dont les liens permettrons d'inscrire au clic de la souris ce texte dans un textarea à la manière des smileys sur un forum quand on clic sur l'image le code s'incris dans ce champ

Si une solution existe, pouvez vous m'aiguiller vers la solution ?

Merci

@+ Smiley cligne
Modifié par Steph67 (16 May 2010 - 16:10)
bonjour,

ceci te donne une bonne piste ... http://forum.alsacreations.com/topic-5-34582-1-Agir-sur-le-body-parent-dune-iframeResolu.html

Pour cibler ton textarea si il a un id par exemple : parent.document.getElementById(id);

Par exemple pour modifier un style :

dans l'iframe :

<p on click="parent.document.getElementById('test').style.color='green';">mettre 'test' de parent.document en vert .</p>

et dans la page contenant l'iframe :

<p id='test'> paragraphe 'test' </p>


.
GC
Bonjour,

Merci pour ta réponse mais cela ne correspond pas a ce que je cherche à faire.

C'est du texte que je cherche a insérer et non une couleur

L'id du textarea est message ce queje souhaite est que lorsque je clic sur une image ou un lien depuis l'iframe, un texte choisi à l'avance par exemple clin_oeil apparaisse dans le champ à la manière des smiley sur ce forum

@+
Steph67 a écrit :
Bonjour,

Est-il possible d'agir sur un champ textarea depuis une iframe distante.

....

Si une solution existe, pouvez vous m'aiguiller vers la solution ?


Pourtant : parent.document est bien la methode qu'il te faut pour l'atteindre .
commence par modifier ton script de smiley pour qu'il cible ton textarea , ensuite remplace le smiley <img src='smiley' /> par un <a href='lien'>lien</a>.

(c'est un forum , pas un fournisseur de script gratuits sur mesure Smiley cligne )

Cordialement ... GC

<edit , pour ne pas revenir sur le post je reprend l'exemple precedent :

Par exemple pour modifier un contenu de text area :

dans l'iframe :
<p onclick="parent.document.getElementById('test').value='vert';">mettre dans  'test' de parent.document le mot vert .</p>
<p onclick="parent.document.getElementById('test').value+='plus de vert';">mettre dans  'test' de parent.document plus de vert .</p>
<p onclick="parent.document.getElementById('test').style.color='green';">et enfin mettre  'test' de parent.document en vert .</p>

et dans la page contenant l'iframe :
<textarea id='test'> paragraphe 'test' </textarea>


/>
Modifié par gc-nomade (16 May 2010 - 21:09)
gc-nomade a écrit :
(c'est un forum , pas un fournisseur de script gratuits sur mesure Smiley cligne )


Bon alors la on s'est mal compris parceque je ne demande pas un script tout fais mais je commence a me demander si vous ne le faites pas exprès ici en donnant des informations autres que celles demandés.

Je demande de l'aide pour intégrer un texte dans un textarea et tu me donne un code pour changer la couleur d'un texte ou est l'erreur ?

Je ne suis pas un pro du javascript et c'est bien pour cette raison que je viens demander de l'aide ici mais bon je vois même en lisant d'autres post que ce genre de réponses arrive toujours on ne fais pas de script a la demande.

Je conçois bien évidement que ce n'est pas comme cela que l'on apprend mais le fait d'envoyer quelqu'un avec une pseudo solution n'aide pas non plus.

Quand tu vas chez le garagiste demander comment on change une ampoule tu te vois recevoir comme réponse il faut ouvrir le capot et qu'ensuite tu dis que tu ne sais pas comment l'ouvrir le garagiste te répond a nouveau ben faut ouvrir le capot on ne va quand même pas le faire a votre place.

Merci quand même pour le temps passé

bye
Modifié par Steph67 (16 May 2010 - 21:16)
tu as croisé l'edition de mon message precedent ...
Tu devrais prendre un peu de recul et lire avec plus d'attention les réponses avant de les considerer comme de l'arrogance a ton égard .
C'est vrai j'ai loupé ton edition !

Excuse moi pour mes mots mais il faut dire que ce genre de dialogue ne m'aide pas car je n'y connais absolument rien en javascript

Et oui je ne demandai pas de réponse toutes faites et en attendant une autre réponse j'ai fais des recherches et plusierus essais sans résultats.

Je testerai ce que tu as donné demain après midi car je dois aller me coucher demain je me lève très tôt Smiley sweatdrop

Bonne soirée Smiley cligne
Bon voila les nouvelles !

J'ai testé ton bout de code et cela fonctionne si je place tout sur une seule page mais par contre dans l'iframe rien ne se passe.

Quand je clic sur le texte de l'iframe rien ne s'affiche dans le textarea
Merci pour ton exemple.

En effet cela fonctionne si je place le tout sur le même serveur mais pas lorsque l'iframe et chargé depuis un autre.

Voici ma page test

---> Lien

et le code pour l'iframe

<iframe src='http://stef67.awardspace.info/iframe.html'>votre navigateur ne supporte pas les iframe , test impossible ! </iframe>


Peu importe le navigateur utilisé
Modifié par Steph67 (18 May 2010 - 17:54)
Bon tanpis alors je m'en doutais mais sais-ton jamais Smiley decu

Merci tout de même, et encore désolé de mettre emporter l'autre jour Smiley ohwell
Modérateur
Bonjour,

Tu peux faire une recherche sur Google pour "Iframe Javascript cross-domain" ou "Javascript cross-domain", il y a peut-être des solutions selon le contexte.

Le sujet m'intéresse, je vais y revenir plus tard.
Modérateur
Bonjour,

J'ai effectué quelques recherches, et ça ne me semble pas réalisable facilement. Il existe des moyens relativement complexes qui peuvent contourner cette sécurité, mais ce serait comme utiliser un char d'assault pour tondre sa pelouse.

Si jamais ce n'est pas trop indiscret, pourrais-tu donner un peu plus de détails sur ce que tu veux mettre en place, pourquoi le champ est extérieur au iframe alors que les images cliquables sont dans un iframe distant, etc...?

Peut-être que tu pourrais te passer du iframe, et appeler un script directement :

<script type="text/javascript" src="http://www.exemplesitedistant.com/tonscript.js"></script>


Ce script pourrait générer le code HTML de la liste des éléments cliquables et il pourrait agir sur la page mère. Aucun iframe ne serait maltraité.
Modifié par Tony Monast (19 May 2010 - 04:04)
Bonjour,

Tony Monast a écrit :
pourquoi le champ est extérieur au iframe alors que les images cliquables sont dans un iframe distant, etc...?


Ce champ est extérieur au iframe tout simplement parceque j'ai coder un système d'hébergement d'image que je souhaite intégré sous forme de MOD sur des forums.

J'ai réussi à tout coder non sans mal pour que l'image soit envoyé sur mon serveur ainsi que la génération du bbcode d'affichage de l'image , mais je souhaite en faire plus en proposant l'intégration de ce lien directement en cliquant dessus afin d'éviter un copier coller comme on le fais déjà pour des smileys.

C'est plus pour une histoire de facilité pour l'utilisateur que pour moi.

Voila pour l'explication, espérant que tu auras tout compris Smiley cligne

L'appel du js pourrai ce faire sur la page ou ce trouve le champ mais le clic viendra de l'iframe
Modérateur
Bonjour,

Ça commence tranquillement à s'éclaircir. J'allais proposer de gérer l'ensemble de l'oeuvre avec l'intégration d'un fichier JS, sans iframe, mais l'upload de l'image en AJAX risque d'avoir les mêmes contraintes de sécurité qu'avec le iframe. (à voir)

As-tu songé à utiliser un seul fichier JS qui s'occuperait de générer le iframe pour l'upload et aussi le code HTML hors iframe pour les boutons cliquables? Il doit certainement avoir un moyen technique de le faire en utilisant un fichier JS, avec ou sans iframe.

Je n'ai encore rien de concret à te proposer, disons qu'on brainstorm. Smiley cligne

Pour terminer, si c'est un MOD pour des forums, ce ne serait pas plus simple d'en faire un plugin qui serait intégralement hébergé sur le serveur du forum (sauf les images qui elles se feraient envoyées directement sur ton serveur d'hébergement d'images)?
Modifié par Tony Monast (19 May 2010 - 14:56)
Bonsoir,

Tony Monast a écrit :
As-tu songé à utiliser un seul fichier JS qui s'occuperait de générer le iframe pour l'upload et aussi le code HTML hors iframe pour les boutons cliquables? Il doit certainement avoir un moyen technique de le faire en utilisant un fichier JS, avec ou sans iframe.


En fait oui j'y ai déjà pensé mais je n'y connais pas grand chose à javascript, malgré mes recherches sur Google, au mieux je trouve des bribes que je tente de comprendre mais j'y arrive rarement Smiley confus

Tony Monast a écrit :
Pour terminer, si c'est un MOD pour des forums, ce ne serait pas plus simple d'en faire un plugin qui serait intégralement hébergé sur le serveur du forum (sauf les images qui elles se feraient envoyées directement sur ton serveur d'hébergement d'images)?


Ce serai très bien oui, j'y ai aussi pensé mais je n'ai pas trouvé de solution pour envoyer l'image sur mon serveur, toujours question de sécurité.

Je cherche encore ........

Merci !!! Smiley cligne
Modérateur
Steph67 a écrit :

Ce serai très bien oui, j'y ai aussi pensé mais je n'ai pas trouvé de solution pour envoyer l'image sur mon serveur, toujours question de sécurité.


J'ignore dans quel langage tu développes ton truc, mais il doit bien y avoir une fonction permettant de soumettre des données en POST à partir du serveur où se trouve ton plugin? En tout cas, c'est possible en Coldfusion.

En gros :

- Le plugin est installé sur le serveur du forum
- L'utilisateur soumet son image au plugin
- Le plugin soumet l'image reçue à une page de traitement sur ton serveur d'hébergement
- Le serveur d'hébergement reçoît les données et sauvegarde l'image et retourne un résultat au serveur du forum
- Ensuite, le plugin affiche l'image et les boutons associés pour l'intégrer au message, voir même l'intègre automatiquement dans le champ.

En complément, tu pourrais même créer une clé d'identification pour chaque personne qui souhaite utiliser ton plugin, et cette clé serait validée à chaque soumission d'image par ton plugin.

Évidemment, ça dépend de ton niveau en développement.

P.S. Il existe aussi des fonctions pour communiquer par FTP, mais je préfère la première méthode. Ça te permet d'avoir une surcouche de contrôle.
Modifié par Tony Monast (19 May 2010 - 21:25)
Je te remercie pour cette idée très interressante !

J'ai dévellopé en php mais mon niveau est tout de même moyen, j'améliore mon code quasiment tout les jours car j'ai certainement des choses mal codés, mais en attendant ça fonctionne.

Pour le plugin je vais voir comment je pourrai faire ça !
Pages :