Insérer un smiley dans une iframe editable (sisi)

luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004 - 4 juil. 2004 à 22:37
idealyo Messages postés 44 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 19 août 2006 - 9 juil. 2004 à 11:14
Bonsoir à tous et toutes je suis actuellement en train de créer une interface wysiwyg pour un forum que je suis en train de développer.

Hors, j'ais un un problème pour insérer des simleys au milieu de mon message et non à la fin comme ici pour les BBcode dans le textarea)

J'arrive à insérer le smiley sous IE et Mozilla (dernier bouton) mais sous IE, le smiley reste selectionner est c'est assez génant... Je voudrais que ça fasse comme sous mozilla et qu'on puisse continuer à écrire. (je sais pas si je me suis fait comprendre :/)

http://youare3.free.fr/forum/test.php

Merci de m'aider ça serai vraiment sympas

Luchy

14 réponses

cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 11:58
tu devrais regarder le fichier forum.js de ce forum :
http://www. fr.com/forum.js

Houzéf@ - www.123toto.com
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 11:59
arc c'est pas passé :
c'est www.javascriptfr.com

Houzéf@ - www.123toto.com
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 12:34
Si tu parle de la fonction AjoutTxt(), il me semble que la fonction createTextRange ne marche pas avec les iframe ou alors je ne sais pas m'en servir

Meci quand même

Luchy
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 12:38
si l'iframe s'appelle "cadre", le textarea s'appelle "message", qu'il est dans le formulaire "formulaire", tu peux accéder au textarea comme ca :
cadre.document.forms.formulaire.message


Houzéf@ - www.123toto.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 16:00
C'est l'iframe elle même qui est editable et non un textarea dans l'iframe

Luchy
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 16:20
ah javais pas compris, en général les smileys on les insère dans des textarea c'est pour ca...

pour "éditer" l'iframe faut en fait ré-écrire son contenu, par
with (cadre.document){
open();
write("Contenu de l'iframe");
}

le "open()" est nécessaire si la page de l'iframe a déja été chargée.

Houzéf@ - www.123toto.com
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 16:27
Le problème est que ça efface tout hors, il faut que j'insére quelquechose.

Franchemant, j'ais du faire tous les forum javascript que je conaissais et personne n'a étais capable de me répondre :/

Je veux pas te mettre la pression lol mais tu es mon dernier espoir

P.S : Tu peux jeter un coup d'oeil à la source : http://youare3.free.fr/forum/test.php

Luchy
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 16:43
pour la fonction smile() de ton script ta qu'à recopier la fonction ajouterImage() sauf que là tu enlèves le prompt(), la variable myUrl correspondra au smiley qui a été cliqué.

je suis sur que c'est possible...

Houzéf@ - www.123toto.com
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 17:57
c'est ce que j'avais fait, le problème est que le smiley reste selectionné (ce que je ne veux pas) sous IE.

function smiley (smile) {
      document.getElementById('edit').contentWindow.focus()
      getIFrameDocument("edit").execCommand("insertimage", false, smile);
}


getIFrameDocument("edit").execCommand("insertimage", false, smile);
permet d'insérer une image et le "false" empéche le "prompt()"

J'avais essayer avec la méthode paste de execComand mais je ne sais pas comment copier une image (pas son url mais l'image elle même) comme quand un fait un "clic droit > copier" sur image.

Luchy
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
5 juil. 2004 à 18:04
dans ce cas j'ai pas vraiment d'idée... enfin tu pourrais "tricher" :
plutot que d'ajouter le smiley lui-meme, tu ajoutes plutot un texte comme <smiley: lol.gif> et ensuite lors de la génération du code source tu remplaces dans le code source les <smiley: lol.gif> par la vraie balise , en utilisant une expression régulière.

Houzéf@ - www.123toto.com
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 18:10
Ben oui mais ça casse un peu tout étant donné que c'étais une interface "Wysiwyg"

A moins qu'il existe un code pour siluler l'appuis d'une touche en JS (ici la fléche droite)
Luchy
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
5 juil. 2004 à 18:12
simuler* (désolé)
0
luchy666 Messages postés 9 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 6 juillet 2004
6 juil. 2004 à 20:13
Je viens de trouver

Ma fonction smiley est devenue :
   	function smiley (smile) {
      document.getElementById('edit').contentWindow.focus()
      getIFrameDocument("edit").execCommand("insertimage", false, smile);
      if (navigator.appName=="Microsoft Internet Explorer"){
getIFrameDocument("edit").execCommand("cut", false);
getIFrameDocument("edit").execCommand("paste", false);
  }
}

En fait, j'insére l'image, je la coupe, puis je la colle :shy)

Par contre, maintenant, je cherche à stoquer l'ancienne valeure que l'utilisateur avait copié dans une variable pour ensuite la remettre
Luchy
0
idealyo Messages postés 44 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 19 août 2006
9 juil. 2004 à 11:14
ya un super tuto sur ce que tu cherches a faire sur le site asp-php.net, va y faire un tour, c'est vraiment très bien fait pour ma part j'ai recopié le code betement qu'il donne... et ca marche nikel
0
Rejoignez-nous