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

Signaler
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
-
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010
-
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! ;-)

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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    
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai oublié la fonction qui efface...

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


Cordialement            Bul    
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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    
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010

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 ;-)
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010

Merci beaucoup! Tout fonctionne désormais!
Je vais garder ce code bien au chaud ;-)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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    
Messages postés
7
Date d'inscription
samedi 1 août 2009
Statut
Membre
Dernière intervention
14 avril 2010

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!