FORUM Tom's Hardware » Programmation » HTML / Javascript » Changer le contenu d'une balise object...
 

Changer le contenu d'une balise object...

Il y a 189 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Changer le contenu d'une balise object...
 
Plus d'informations

Salut !
 
Pourriez-vous me faire savoir comment changer le contenu d'une balise object ?
 
Ca pourrait etre quelque chose comme ca (mais cette formulation ne fonctionne pas) :
 
<object
id="tarmac"
data="Site/bvwb.gif"
>
</object>
 
<a
onclick="document.getElementById('tarmac').location='Site/h1.php'"
>
changer
 
Merci de votre aide !

Profil : Pointeur
Plus d'informations

document.getElementById('tarmac').data='Site/h1.php
 
??


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Merci, KangOl, de ta reponse !
 
Unfortunately,  
 

Citation :

document.getElementById('tarmac').data='Site/h1.php'


 
ne fonctionne pas !

Plus d'informations

Si tu veux charger une nouvelle url:

Code :
  1. function loadURL(url) {
  2.             //recupère l'objet à modifier
  3.             var actu = document.getElementById("contenuActu" );
  4.             replaceObject(actu,url);
  5. }


 
 
Si tu veux changer le contenu d'un objet par un autre objet:
 

Code :
  1. function replaceObject() {
  2.           //recupère l'objet à modifier
  3.           var object = document.getElementById("contenu" );
  4.           // remplace le contenu de l'object --> nObject est l'objet qui remplace le contenu de ton objet conteneur
  5.           object.replaceChild(nObject,object.firstChild);
  6. }



Message édité par winnet le 15-11-2005 à 18:48:44
^mmm mé c sa kié bon
Plus d'informations

Bonjour  
j'ai le meme probleme  
 
Le script donné ne marche pas ou je ne l'utilise peut-etre pas correctement...
 

Code :
  1. function loadURL(url) {
  2.     //recupère l'objet à modifier  
  3.     alert("changemen : " +url);
  4.     var actu = document.getElementById("corps_contenu" );
  5.     alert(actu.data);
  6.     replaceObject(actu,url);
  7.     alert(actu.data);
  8. }


 
IE me met une erreur a la ligne du replaceObject
 
japele la fonction comme ceci :

Code :
  1. <a onclick="javascript:loadURL('contenu/fichier.html')"> Accueil</a>


 
la balise object est la suivante :

Code :
  1. <object  id="corps_contenu" class="contenu" data="contenu/bienvenu.html" type="text/html" />


 
sur le premier alert j'ai bien  'contenu/fichier.html'  
 
le deuxieme j'ai bien contenu/bienvenu.html  
 
& la paf IE me met une erreur  "objet attendu"  
 
Merci de m'aider ;-)  
 
 
 

si toutefois c'était encore d'actualité ...
 
voici la fonction javascript revue :
 

function loadURL(url,objet) {
  //recupère l'objet à modifier
  var actu = document.getElementById(objet);
  // creé le nouvel objet de remplacement
  var nouvo = document.createElement('OBJECT');
  nouvo.id = "provisoire";
  nouvo.className = "contenu";
  nouvo.data = url;
  nouvo.type = "text/html"
  // échange des 2 objets
  actu.parentNode.replaceChild(nouvo,actu);
  // donner l'id correct au nouvel objet
  document.getElementById("provisoire" ).id = objet;
}


 
voici le code html de l'object
attention, pour faciliter son remplacement il est disposé dans un div
(ce div peut tout aussi bien n'être que le body)
 

<div>
   <object  id="corps_contenu" class="contenu" data="contenu/bienvenu.html" type="text/html"></object>
</div>


 
voici l'appel (dans un lien) du nouveau fichier à insérer :
 
   

<a onclick="javascript:loadURL('contenu/fichier.html','corps_contenu')"> Accueil</a>


 
   

Ha! Oui!
 
J'oubliais .... !
 
Il y a d'autres méthodes pour charger une page (ou un fichier)
dans une autre, et sans recharger la page principale ni se servir d'un "object"
c'est le XMLHttpRequest
 
petit exposé ici :
http://perso.wanadoo.fr/stephane.m [...] ndex.shtml
 
où on devrait pouvoir tester avec et sans JavaScript activé
En effet, il est prévu que çà fonctionne (moins bien puisque recharge toute la page) sans le javascript mais grâce aux SSI, normalement disponibles sur tout serveur.
 

Profil : Pointeur
Plus d'informations

ca c'est un up kilaibien :o

Plus d'informations

J'ai plus simple pour gérer ceci
 
Fonction javascript

function chargeURL(url,objet) {
  ancien=document.getElementById(objet);
 
  // Cloner l'ancien objet
  nouveau=ancien.cloneNode(true);
  // Modifier le champ à modifier
  nouveau.data=url;
  // Remplacer l'ancien objet par le nouvel objet
  ancien.parentNode.replaceChild(nouveau,ancien);
}


 
La définition de l'objet contenu dans le corps du fichier HTML

<object id="corps_contenu" data="contenus/bienvenue.html" type="text/html"></object>


 
Le changement de l'objet

<a href="javascript:chargeURL('contenus/fichier.html','corps_contenu')"> Fichier</a>


Plus d'informations

Merci beaucoup Naja, c'est la solution que je cherchait !
 
malheureusement pour moi, peut-être parceque l'object est contenu dans une div, cela ne marche pas du tout sous ie (l'interprétation de la page s'arrête à la balise object, j'ai son contour et plus rien...).
 
N'y aurait-il pas moyen d'envoyer le contenu directement dans la div (sans la balise object donc...) ?
 
J'ai trouvé un bout de js qui pourrait peut-etre solutionner ceci si innerHTML = Content pouvait me récupérer le contenu de ma page distante :
 

Code :
  1. var ns4 = (document.layers)? true:false;         //NS 4
  2. var ie4 = (document.all)? true:false;         //IE 4
  3. var dom = (document.getElementById)? true:false;   //NS 6 ou IE 5
  4. function SetDiv(ID,Content) {
  5.       if (dom) {
  6.       document.getElementById(ID).innerHTML = Content;
  7.          return;
  8.       }
  9.       if (ie4) {
  10.           document.all[ID].innerHTML = Content;
  11.          return;
  12.       }
  13.       if (ns4) {
  14.           with (eval('document.'+ID+'.document')) {
  15.              open();
  16.              write(Content);
  17.              close();
  18.          }
  19.          return;
  20.       }
  21. }


 
je suis en train de devenir maboule et je ne voit plus les évidences... il me faudrait avoir comme paramètre 'content' le chemin du fichier distant, mais ajouter dans le script une fonction pour en récupérer le contenu avant de faire innerHTML = Content
 
un petit coup de pouce d'un pro de js ?


Message édité par Bratovitch le 10-06-2006 à 15:38:38
Plus d'informations

si quelqu'un peut me donner un petit coup de pouce...
j'aimerai ne pas avoir à revenir aux iframe... avec tous les hacks que cela inclu et la redéfinition de ma page en html 4.1 au lieu de xhtml...


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » HTML / Javascript » Changer le contenu d'une balise object...
 

Annonces Google
Publicité