Posez votre question Signaler

Afficher du html en javascript

AnaGraM 69Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - Dernière réponse le 9 juil. 2004 à 17:03
Bonjour !

Je voudrais afficher dynamiquement du html dans un script javascript. J'ai trouvé tout pleins d'exemples sur le web mais je n'arrive à en faire fonctionner aucun ...
Je voudrais en fonction d'un résultat précédent afficher des frames.

    document.write("salut");
    document.write ('<FRAMESET COLS="112,*">');
    document.write ('<FRAME SRC="menu.htm" name="bar" NORESIZE>');
    document.write ('<FRAME SRC="contenu.htm" name="princ">');
    document.write ('</FRAMESET>'); 


Mais voilà ! Je n'ai que salut qui s'affiche ... Quelqu'un aurait une idée ?
Merci d'avance
Lire la suite 
Réponse
+3
moins plus
dans ta balise body tu rajoute onload=function()
<body onload='mafonction()'>

et dans ta fonction tu pourra ecrire tout ce que tu veux dans le document avant qu il ne passse a la suite du code html
Ajouter un commentaire
Réponse
+1
moins plus
Tiens, j'ai trouvé ceci :
http://www.aidejavascript.com/article59.html
-> Page de cadres dynamique "dynacadres.htm"

Dans l'exemple, les balises <body> et </body> sont incluses dans le script.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Essaie de mettre le code HTML entre guillemets :
    document.write ("salut");
    document.write ("<FRAMESET COLS='112,*'>");
    document.write ("<FRAME SRC='menu.htm' name='bar' NORESIZE>");
    document.write ("<FRAME SRC='contenu.htm' name='princ'>");
    document.write ("</FRAMESET>"); 
A+
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
essaye de mettre des doubles quotes à la place de tes simples quotes et inversement :
document.write ("<FRAMESET COLS='112,*'>");
je ne suis pas sur que ca marche mais tiens moi au courant.
a plus;
Ajouter un commentaire
Réponse
+0
moins plus
Exemple du code en tête de page forcé par un hébergeur (gratuit) pour faire sa publicité :


<script language="javascript">
if(window == window.top) {
        var address=window.location;
        var s='<html><head><title>'+'</title></head>' +
                    '<frameset cols="*,140" frameborder="0" '+
                    ' border="0" 'framespacing="0" '+
                    ' onload="return true;" onunload="return true;">'+
                    '<frame src="'+address+'?" name="memberPage" '+
                    ' marginwidth="0" marginheight="0" '+
                    ' scrolling="auto" noresize>'+
                     '<frame src="http://{page_de_l_hebergeur_etc}" '+
                     ' marginheight="0" scrolling="auto" noresize>'+
                   '</frameset>'+
                   '</html>';

        document.write(s);      
}
</script>
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour toutes vos réponses ;)

Mais malheureusement, ca ne fonctionne pas. J'avais déjà essayé d'intervertir les guillemets et les quotes.
J'ai essayé ensuite la solution de Marden mais ça na fonctionne pas non plus (en changeant aussi les quotes et les guillemets).

Est-ce que ça vient de chez moi ? Je n'y arrive ni avec IE, ni avec firefox ....
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
est ce que tes pages se trouvent dans le meme repertoire que celle ou tu definis tes frames, si oui essaye de rajouter ./ devant chaque nom de page.
Sinon au sein du body est ce que tu ouvres et fermes correctement ta balise <script>
A plus
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour dedale82,

Oui, j'ai tout essayé. Les pages sont dans le même répertoire, j'ai tenté ./ mais ca ne fonctionne pas non plus et je ferme bien toutes les balises.
;-(
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Je pense que je ne vous ai pas donné toutes les infos.
Si je teste ce code dans une seule page, ça fonctionne :

document.write('  <frameset cols="116,*">');
document.write('    <frame name="Sommaire" src="Sommaire.htm target="MainPage"');
document.write('    <frame name="MainPage" src="Home_f.htm target="MainPage"');
document.write('  </frameset>');



Par contre, si je l'insère dans un if, il ne fonctionne plus !!!
if(urlParam["param1"] == 1){
    document.write ("salut");
    document.write('  <frameset cols="116,*">');
    document.write('    <frame name="Sommaire" src="Sommaire.htm target="MainPage"');
    document.write('    <frame name="MainPage" src="Home_f.htm target="MainPage"');
    document.write('  </frameset>');
}


Où est la faille svp ??
Ajouter un commentaire
Réponse
+0
moins plus
J'ai encore continué à batailler et j'en arrive à ça :

<html>

<script language="JavaScript"><!--
	// Fonction d'extraction des paramètres
	function TJSExtraireParam() {
		url = window.location.href;
		var exp=new RegExp("[&?]+","g");
		var exp2=new RegExp("[=]+","g");
		var tabNom=url.split(exp);
		var	tabParam=new Array();
		if (tabNom!=null) {
			for (var i=1;i<tabNom.length;i++){
				var tabTemp=tabNom[i].split(exp2);
				tabParam[tabTemp[0]]=tabTemp[1];
			}
		}
		return tabParam;
	}


// Appel de la fonction et création du tableau des paramètres



var urlParam = TJSExtraireParam();

if(urlParam["param1"] == 1){
    document.write('  <frameset cols="116,*">');
    document.write('    <frame name="Sommaire" src="Sommaire.htm" target="MainPage">');
    document.write('    <frame name="MainPage" src="Home_f.htm" target="MainPage">');
    document.write('  </frameset>');
}

//--></script>


<body>


</body>
</html>



Cet ecemple fonctionne !!! Par contre, si je met du javascript entre <body> et </body> ça ne fonctionne plus.C'est embetant de ne pouvoir rien mettre entre <body>.
Si je crée une fonction entre <head> et </head> et que je l'appele entre les body, ca ne refonctionne plus !

Là, ça me dépasse. Qu'est-ce qui se passe svp ?
Ajouter un commentaire
Réponse
+0
moins plus
Up !
SVP !
Ajouter un commentaire
Réponse
+0
moins plus
Pourrais-tu nous copier ton code complet, stp ?

A+
Ajouter un commentaire
Réponse
+0
moins plus
Voilà le code qui fonctionne si je ne met rien entre <body></body> (code posté au dessus)

<html>

<script language="JavaScript"><!--
	// Fonction d'extraction des paramètres
	function TJSExtraireParam() {
		url = window.location.href;
		var exp=new RegExp("[&?]+","g");
		var exp2=new RegExp("[=]+","g");
		var tabNom=url.split(exp);
		var	tabParam=new Array();
		if (tabNom!=null) {
			for (var i=1;i<tabNom.length;i++){
				var tabTemp=tabNom[i].split(exp2);
				tabParam[tabTemp[0]]=tabTemp[1];
			}
		}
		return tabParam;
	}


// Appel de la fonction et création du tableau des paramètres



var urlParam = TJSExtraireParam();

if(urlParam["param1"] == 1){
    document.write('  <frameset cols="116,*">');
    document.write('    <frame name="Sommaire" src="Sommaire.htm" target="MainPage">');
    document.write('    <frame name="MainPage" src="Home_f.htm" target="MainPage">');
    document.write('  </frameset>');
}

//--></script>


<body>


</body>
</html>



et le code que je voudrais mais qui ne m'affiche pas de frame ...

<HTML>
<HEAD>
<SCRIPT language=javascript>
</SCRIPT>
</HEAD>
<body>
<SCRIPT language=javascript>

	// Fonction d'extraction des paramètres
	function TJSExtraireParam() {
		url = window.location.href;
		var exp=new RegExp("[&?]+","g");
		var exp2=new RegExp("[=]+","g");
		var tabNom=url.split(exp);
		var	tabParam=new Array();
		if (tabNom!=null) {
			for (var i=1;i<tabNom.length;i++){
				var tabTemp=tabNom[i].split(exp2);
				tabParam[tabTemp[0]]=tabTemp[1];
			}
		}
		return tabParam;
	}
	// Appel de la fonction et création du tableau des paramètres
	var urlParam = TJSExtraireParam();

</SCRIPT>


<SCRIPT language=javascript>

if(urlParam["param1"] == 1){
    document.write('  <frameset cols="116,*">');
    document.write('    <frame name="Sommaire" src="Sommaire.htm" target="MainPage">');
    document.write('    <frame name="MainPage" src="Home_f.htm" target="MainPage">');
    document.write('  </frameset>');

}
</SCRIPT>


<BR><BR><BR>
</BODY>
</HTML>




Si la fonction TJSExtraireParam() se trouve entre <head> </head>, c'est pareil ...
Ajouter un commentaire
Réponse
+0
moins plus
Merci.
Effectivement, j'ai le même problème chez moi.
C'est curieux... :)

Mais pourquoi souhaites-tu absolument mettre le script entre entre <body> et </body> ?
Ajouter un commentaire
Réponse
+0
moins plus
Merci SirHill

Cet exemple m'a permi de comprendre que les frames ne peuvent pas être mises entre les balises <body>. D'ailleurs il n'y a pas d'utilité de les mettre.
Dans cet ecemple, elles sont mises seulement pour les navigateurs qui ne supportent pas les frames.

Merci encore SirHill ! @bientôt !
Ajouter un commentaire
Réponse
+0
moins plus
Merci Canard007 ;-) C'est parfait !
Ajouter un commentaire
Ce document intitulé «  afficher du html en javascript  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

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.

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