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

LeSparte 7 Messages postés samedi 1 août 2009Date d'inscription 14 avril 2010 Dernière intervention - 2 mai 2007 à 16:41 - Dernière réponse : LeSparte 7 Messages postés samedi 1 août 2009Date d'inscription 14 avril 2010 Dernière intervention
- 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
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 3 mai 2007 à 09:42
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    

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_bultez
Meilleure réponse
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 3 mai 2007 à 09:44
3
Merci
j'ai oublié la fonction qui efface...

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


Cordialement            Bul    

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 3 mai 2007 à 06:53
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
LeSparte 7 Messages postés samedi 1 août 2009Date d'inscription 14 avril 2010 Dernière intervention - 3 mai 2007 à 09:13
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
LeSparte 7 Messages postés samedi 1 août 2009Date d'inscription 14 avril 2010 Dernière intervention - 3 mai 2007 à 12:36
0
Merci
Merci beaucoup! Tout fonctionne désormais!
Je vais garder ce code bien au chaud ;-)
Commenter la réponse de LeSparte
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 3 mai 2007 à 12:58
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
LeSparte 7 Messages postés samedi 1 août 2009Date d'inscription 14 avril 2010 Dernière intervention - 3 mai 2007 à 13:12
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.