Vider une iframe... et la remplir à nouveau

Résolu
LeSparte Messages postés 7 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 14 avril 2010 - 2 mai 2007 à 16:41
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! ;-)

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 mai 2007 à 09:42
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    
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 mai 2007 à 09:44
j'ai oublié la fonction qui efface...

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


Cordialement            Bul    
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 mai 2007 à 06:53
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    
0
LeSparte Messages postés 7 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 14 avril 2010
3 mai 2007 à 09:13
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 ;-)
0

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

Posez votre question
LeSparte Messages postés 7 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 14 avril 2010
3 mai 2007 à 12:36
Merci beaucoup! Tout fonctionne désormais!
Je vais garder ce code bien au chaud ;-)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
3 mai 2007 à 12:58
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    
0
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
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!
0
Rejoignez-nous