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

Signaler
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004
-
Messages postés
44
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
19 août 2006
-
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

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

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

Houzéf@ - www.123toto.com
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

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
Messages postés
453
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
9 juillet 2004
2
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
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

C'est l'iframe elle même qui est editable et non un textarea dans l'iframe

Luchy
Messages postés
453
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
9 juillet 2004
2
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
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

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
Messages postés
453
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
9 juillet 2004
2
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
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

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
Messages postés
453
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
9 juillet 2004
2
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
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

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
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

simuler* (désolé)
Messages postés
9
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2004

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
Messages postés
44
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
19 août 2006

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