begin process at 2012 05 29 11:52:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

iframe éditable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

iframe éditable

samedi 1 mars 2008 à 10:11:04 | iframe éditable

zemele

Bonjour,

On va faire simple, voici mon code qui ne marche pas (il créée l'iframe mais ne lui donne pas le focus et n'est pas modifiable non-plus)

<code>
function inli(obj){
   

    var iframe = null;//initialisation


    iframe = document.createElement("iframe");//Création de l'élément


    iframe.id = 'Saisie';//On nomme l'éléments
   
    obj.replaceChild(iframe, obj.firstChild);//On remplace l'élément cliqué par l'iframe

           
    Champ=document.getElementById('Saisie').contentDocument;   
    Fen=document.getElementById('Saisie').contentWindow;
    Champ.designMode='On';    // iframe modifiable

   
    Fen.focus();        //On donne le focus
   

   
}

Après plusieurs tests le pb viendrai peut être iframe = document.createElement("iframe") mais quel est le pb exacte et comment le solutionner vraiment je ne voit pas. Si quelqu'un à une idée ça me dépatouillerai ...


</code>
samedi 1 mars 2008 à 10:59:56 | Re : iframe éditable

bultez

Membre Club


Bonjour,

    tu pourrais nous donner obj et son firstChild ?


>>frame = document.createElement("iframe")
    ça je ne le pense pas....
    ça viendrait plutôt (?) qu'il ne trouve pas l'ID "Saisie" car "mal créé" ?


                Cordialement            Bul         [mon Site]     [M'écrire]
samedi 1 mars 2008 à 11:10:50 | Re : iframe éditable

zemele

<div onClick="inli(this);" class='corpDeTexte1'>un texte</div>

'fin rien de spéciale en fait...

De plus en continuant mes tests, lorsque je fait un "alert('truc')" juste avant la ligne

"Champ=document.getElementById('Saisie').contentDocument;  "

Et bien après avoir cliqué "ok" ça marche.

Je me demande si en fait il ne trouve pas 'saisie' car pas fini de l'avoir créé... C'est surement stupide, mais il doit y avoir un truc autour de ça.

(merci pour ton code d'ailleur, il m'a inspiré pour faire ce que je fait - si tu as suivie c'est un combo entre le inlineMode et un système WYSI... )
samedi 1 mars 2008 à 11:22:12 | Re : iframe éditable

bultez

Membre Club
et pourquoi "tu t'embêtes" avec replaceChild du firstChild d'un div... vide ?
    pourquoi pas simplement un iframe, directement dans le body ?
si tu as regardé mon code ici, c'est ce qui est fait.
    mais on peut regarder pourquoi ça ne baigne pas tel que tu le fais...

                Cordialement            Bul         [mon Site]     [M'écrire]
samedi 1 mars 2008 à 11:30:07 | Re : iframe éditable

zemele

Non c'est un système "inlineMode", ctad quand on clique sur un texte, il passe en mode "modification", quand on clique ailleur, le texte d'origine est remplacé par celui saisie. Il faut donc

au clique : crééer l'iframe
au clique exterrieur le supprimer.

(Je te passe le reste du code qui lui fonctionne, et j'ai isolé juste cette partie pour vérifier qu'il n'y pas problème de doublont ou autre...)

Et pour l'instant, j'ai juste ce petit problème de passage en mode modification de l'iframe. J'ai encore tester d'autre chose et rien n'y fait. Il y a juste qu'avec alert que ça marche. Pourquoi je ne sais pas... Si tu as une idée...
samedi 1 mars 2008 à 11:48:36 | Re : iframe éditable

bultez

Membre Club

si tu veux basculer mode wysiwyg / mode texte brut,
    j'ai fais cela en recouvrant l'iframe par textarea de même taille/position
          ( et inversement )
si tu veux cacher... il y a d'autres moyens plus simples... mais tu sais probablement....

mais si tu veux conserver cette méthode...

    l'erreur est ici : document.getElementById('Saisie')
        il ne trouve pas l'ID Saisie,
    l'Iframe est bien créée, l'id "Saisie" ne lui est pas affecté !
       j'ai en tête d'avoir eu un problème similaire, je ne me souviens
          plus à quoi c'était du, quelle erreur je faisais ! de mémoire
          d'Alzheimer , un problème "de syntaxe" pour affecter en dynamique un ID....
       faut retrouver quoi...


                Cordialement            Bul         [mon Site]     [M'écrire]
samedi 1 mars 2008 à 11:52:31 | Re : iframe éditable

zemele

Oui je pense aussi que le pb vient de là. Ce qui est curieux c'est qu'après une alrt ça marche... Je vais creuser...

Quant au remplacement par un textarea, ce n'est pas utile dans mon cas, car je récupère le contenu de l'iframe et le fait charger dans la page par une méthode ajax, les varibles pouvant être envoyés en post par ajax, pas utile d'avoir des éléments de formulaire...

Merci  quand même en tout cas...
samedi 1 mars 2008 à 12:09:23 | Re : iframe éditable

bultez

Membre Club
j'ai pas des conneries ? comme souvent ?

    switch (navigator.appName)   
    {    //         ===============================
        case     "Microsoft Internet Explorer":
        //         ===============================
            Fen=window.frames['Saisie'];
            Champ=Fen.document;

            break;
        //               =========
        default:    //     sinon
        //               =========
            Champ=document.getElementById('Saisie').contentDocument;
            Fen=document.getElementById('Saisie').contentWindow;
            break;   
    }



                Cordialement            Bul         [mon Site]     [M'écrire]
dimanche 2 mars 2008 à 08:19:57 | Re : iframe éditable

zemele

Ca ne marche pas non plus... Je suis déjà sous mozilla.
dimanche 2 mars 2008 à 11:16:37 | Re : iframe éditable

bultez

Membre Club
crottes de biques....

<body>
<script type="text/javascript">
function inli(obj){
   var Fen,Champ;
   var ifr = document.createElement("iframe");
   ifr.id = 'Saisie';
   ifr.name="Saisie";
   obj.replaceChild( ifr, obj.firstChild );
   switch (navigator.appName)  
   {    //            ===============================
        case         "Microsoft Internet Explorer":
        //            ===============================
            Fen=window.frames['Saisie'];
            Champ=Fen.document;
            break;
        //            =========
        default:    //  sinon
        //        =========
            Champ=document.getElementById('Saisie').contentDocument;
            Fen=document.getElementById('Saisie').contentWindow;
alert( Champ + "\n" + Fen );
            break;
   }
   Champ.designMode='On';
   Fen.focus();
}
</script>
<div onClick="inli(this);">un texte</div>
</body>

    ça fonctionne parfaitement avec IE,

    et avec FF :

Erreur : uncaught exception:
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
[nsIDOMNSHTMLDocument.designMode]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)" 
location: "JS frame :: file:///D:/Temp/new%201.htm :: inli :: line 26"  data: no]


    je doit faire une grossière erreur avec FF !
    un spécialiste devrait pouvoir nous dire...


                Cordialement            Bul         [mon Site]     [M'écrire]

1 2

Cette discussion est classée dans : iframe, focus, document, saisie, obj


Répondre à ce message

Sujets en rapport avec ce message

Iframes recuperation de donnees [ par mhiblot ] voila mon pb. sur 1 premier page, g 1 formulaire avec une iframe en plus.nommee 'iframe' :p dans cette iframe g 2 champs et un bouton. lorque je cl Focus avec NS7 [ par Developpement ] Bonjour,Dans mon formulaire, je souhaite valider une zone de saisie. J'ai donc utilise une fonction javascript sur l'evenement onBlur. Dans le cas ou rollvover sur img [ par gesualda ] Bonjour à tous,j'ai testé ce code pour faire un rollover sur une image ..Tous fonctionne jusqu'au block4, et ensuite il ne donne aucune erreur, mais n probleme script de controle de saisie [ par fredmorvant29 ] bonjour, je suis en train de réaliser le controle de saisie sur mon formulaire.je souhaite tester deux choses : *que l'email soit valide (ça ça mar javascript qui foire [ par jofer ] salut à tousvoilà j'ai fait un petit code javascrit pour faire des alertes dasn le cadre d'une saisie. les deux alertes (avec focus) fonctionne sauf q Faire une interface de saisie simple avec IFrame et sortie HTML [ par osscour ] Bonjour, je voudrais créer une interface de saisie simple pour un intranet avec JavaScript et les IFrames. En fait la personne saisie son texte dans inclusion de fichier .js [ par jimmy69 ] Bonjour a tous, Je debute en javascript et je me construit un p'tit site tout simple j'ai fait quelque fonction en javascript qui place le curseur ds obj.innerHTML [ par fgingat ] Bonjour à tous .. Voila mon premier poste concerne un soucis de comprehension de la methode de fonctionnement de obj.innerHTML  A savoir sur une page pb sur un focus [ par Gr1Go ] Bonjour,Je suis en train de programmer un programme en php et pense que le javascript va pouvoir m'aider pour resoudre mon probleme.J'ai donc 2 fenetr Probleme de différence de taille entre IE et Mozilla (etc) [ par chandler_vodkamartini ] Voilou, j'explique la situation, j'ai un scroll javascript qui agit sur une suite d'image et de texte placée dans un container qui a une certaine tail


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales