Vider une iframe... et la remplir à nouveau [Résolu]

Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
- - Dernière réponse : LeSparte
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
- 3 mai 2007 à 13:12
Bonjour à tous!

Voici mon script problématique (l'explication de mon problème est juste en dessous )

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html><head>

<title>ecrire dans un iframe</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<script>

function remplir(){

document.getElementById("htmle").contentWindow.document.write('blablabla');

}

function effacer(){

var myIframe = document.getElementById('htmle');

myIframe.contentWindow.document.body.innerHTML = "";

}

</script>

</html>

Si on clique sur remplir, cela fonctionne, l'iframe affiche "blabla". Si on clique sur
effacer, cela fonctionne. Mais si on clique à nouveau sur remplir...
cela ne fonctionne plus!

Comment éviter cela?

Merci d'avance pour votre aide! ;-)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
3
Merci
mon intérêt primordial va à Internet exlorer par rapport à mes utilisateurs
    et irait à des navigateurs compatibles par intérêt personnel.
        mais chacun et ses goûts et ces motivations, et les vaches seront bien gardées.


>>coder des fonctions qui conduisent à un chargement perpétuel de la page,
    comme ça, ça va un peu mieux avec FF, IE est content aussi



<script    type="text/javascript">
    var Fen,Champ;
    window.onload=function()
        {
            switch (navigator.appName)       // par exemple
            {
                //         ===============================
                case     "Microsoft Internet Explorer":
                //         ===============================
                            Fen=window.frames['htmle'];
                            Champ=Fen.document;
                            break;
                //               =========
                default:    //     sinon
                //               =========
                            Champ=document.getElementById('htmle').contentDocument;
                            Fen=document.getElementById('htmle').contentWindow;
                            break;  
            }
            Champ.designMode='On'; 
            Fen.focus();
        }

function remplir(){
  Fen.document.body.innerHTML+='blablabla';   
}
function effacer(){   
  Champ.innerHTML = "";
}
</script>
  
          









<hr />



Cordialement            Bul    

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
3
Merci
j'ai oublié la fonction qui efface...

function effacer()
{   Fen.document.body.innerHTML = "";    }
<hr />


Cordialement            Bul    

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
Bonjour,
avec IE, ça fonctionne.    avec FF, non.    avec K-Meleon : une erreur...
mais, comme souvent hélas, IE et FF ne fonctionnenet pas de la même manière.

    switch (navigator.appName)       // par exemple
    {
        //         ===============================
        case     "Microsoft Internet Explorer":
        //         ===============================
            Fen=window.frames['htmle'];
            Champ=Fen.document;
            break;
        //               =========
        default:    //     sinon
        //               =========
            Champ=document.getElementById('htmle').contentDocument;
            Fen=document.getElementById('Saisie').contentWindow;
            break;   
    }

    puis
    Champ.designMode='On';    // iframe modifiable
    Fen.focus();   ...

<hr />


Cordialement            Bul    
Commenter la réponse de cs_bultez
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
0
Merci
Bonjour,

Merci pour vos éléments de réponse.
En fait, mon intérêt primordial va à Firefox tant par rapport à mes utilisateurs que par intérêt personnel. Il m'arrive en effet fréquemment, chez ce dernier, de coder des fonctions qui conduisent à un chargement perpétuel de la page, comme l'illustre la fonction "remplir()" ci-dessus. Voyez-vous une raison à cela?

Merci d'avance pour ces informations complémentaires ;-)
Commenter la réponse de LeSparte
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
0
Merci
Merci beaucoup! Tout fonctionne désormais!
Je vais garder ce code bien au chaud ;-)
Commenter la réponse de LeSparte
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
nickel si ça baigne et merci du retour



    switch (navigator.appName) 


            les CASE ne testent pas grand chose ( doux euphémisme ! )
            ici, avec IE et K-Meleon ( ou FF ) ça baigne
                  mais quid d'Opera par exemple ? je ne sais pas où il en est...




<hr />



Cordialement            Bul    
Commenter la réponse de cs_bultez
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
0
Merci
Je viens de tester avec Opera et cela fonctionne également.
Tout serait-il donc pour le mieux dans le meilleur des mondes? ;-)

Merci encore et codez bien!
Commenter la réponse de LeSparte