Rechercher : dans
Par :

Javascript - Vider un iframe

Dernière réponse le 17 sep 2009 à 14:20:49 le sparte, le 2 mai 2007 à 11:43:19 
 Signaler ce message aux modérateurs

Bonjour,

Ma question est toute simple: j'ai un iframe rempli en Javascript avec la commande "document.write('mon Texte') et je cherche une façon de le vider de son contenu afin qu'à chaque clic de l'utilisateur, l'ancien contenu de l'iframe soit écrasé par le nouveau.

Merci d'avance pour votre aide ;-)

Configuration: Mac OS X
Firefox 2.0.0.3

Meilleures réponses pour « Javascript Vider un iframe » dans :
[Vidéo] Branchement PC-TV VoirIl est relativement simple de relier le PC à la télévision. Branchement Paramétrage Notes Branchement Il faut tout d'abord relier les appareils via un câble S-vidéo du PC à la télévision, puis le son c'est-à-dire la sortie des...
Extraire le son d'une vidéo VoirVous avez un fichier vidéo dont vous voulez récupérer la bande-son ? Extraire en WAV avec VLC Pour ce faire, il faut d'abord récupérer VLC Media Player à l'adresse suivante : Télécharger VLC Puis, après installation : 1. Menu Fichier =>...
Javascript - La notion d'objet VoirNotion d'objet Le but de cette section n'a pas pour ambition de traîter de la programmation orientée objet mais de donner une idée de ce qu'est un objet, concept nécessaire à la création de scripts Javascript. Le Javascript traite les éléments qui...
Le format MKV (Matroska Video) VoirLe format MKV Le format MKV (Matroska Video) est un format vidéo entièrement libre. Plus exactement il s'agit d'un conteneur (d'où le nom Matroska, en référence aux poupées russes) permettant de contenir de la vidéo (DivX, Xvid,RV9, etc.), du son...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...

1

kij_82, le 2 mai 2007 à 11:49:16

Regarde tu coté de innerHTML.

Utilisation :
Tu récupère l'élément de la facon suivante (mettons que ton iframe s'appelle 'toto' --> id='toto') et tu remplace le contenu par "".

  var myIframe  = document.getElementById('toto');
  myIframe.innerHTML = "";


Mais n'ayant jamais utilisé les iFrame, je ne sais pas s'il s'agit de composant comme les DIV, ou d'un composant géré comme une frame.
S'il s'agit de la première manière, alors la méthode ci-dessus devrait fonctionner.
Si une iFrame est gérée de la meme manière qu'une Frame, alors il faudra faire comme suit :
 var myIframe = parent.frame['toto'];
 myIframe.document.innerHTML = "";


Je ne suis pas sur que ca fonctionne mais c'est une piste (je ne peux pas tester désolé).

Bon courage pour la suite.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

2

le sparte, le 2 mai 2007 à 12:49:42
  • +1

Bonjour et merci pour cette réponse rapide!

Grâce à votre aide, j'ai progressé dans la solution de mon problème, mais un autre est surgi. Soit le script ci-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>
<body onload="frames['htmle'].document.designMode='On'" >
<script>
function remplir(){
  document.getElementById("htmle").contentWindow.document.write('blablabla');	
}
function effacer(){    
  var myIframe  = document.getElementById('htmle');
  myIframe.contentWindow.document.body.innerHTML = "";
}
</script>

<iframe id="htmle" name="htmle" height="50" width="300"></iframe><br>
<input type="button" value="remplir" onclick="remplir()">   
<input type="button" value="effacer" onclick="effacer()">           
</body></html>


Si on clique sur remplir, cela fonctionne. 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! ;-)

Répondre à le sparte

3

2i4u, le 23 jui 2008 à 13:25:39

Salut, j'ai exactement le meme pb que toi et je souhaitais savoir si tu as eu une solution à ton solution? Merci

Répondre à 2i4u

4

kij_82, le 24 jui 2008 à 13:21:53

Bonjour,

Pourquoi utiliser document.write dans la fonction remplir, et document.body.innerHTML dans vider ?
Autant utiliser la même instruction dans les deux fonctions.

Si tu remplace le code dans ta fonction 'remplir' par ceci:

document.getElementById("htmle").contentWindow.document.body.innerHTML = "blablabla";	


Est-ce que ça fonctionne ?

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :)    ~

Répondre à kij_82

5

 Aguila, le 17 sep 2009 à 14:20:49

Merci de votre aide, ceci m'a permis de résoudre mon problème.
Je confirme la syntaxe suivante : document.getElementById('id_de_la_frame).contentWindow.docum­ent.body.innerHTML afin de lire le contenu de mon iframe.

Bonne journée à tous.

Répondre à Aguila
Collection CommentÇaMarche.net