Afficher du html en javascript [Fermé]

AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 7 juil. 2004 à 21:47 - Dernière réponse :  cadeau
- 7 août 2015 à 21:51
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
Afficher la suite 
69Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention

17 réponses

Canard007 5939 Messages postés mercredi 26 mai 2004Date d'inscriptionContributeurStatut 18 septembre 2009 Dernière intervention - 9 juil. 2004 à 14:56
+3
Utile
1
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
Cette réponse vous a-t-elle aidé ?  
<script type="text/javascript">
str='@64@6F@63@75@6D@65@6E@74@2E@77@72@69@74@65@28@22@73@61@6C@75@74@'
+'22@29@3B@D@A@20@20@20@20@64@6F@63@75@6D@65@6E@74@2E@77@72@69@74@'
+'65@20@28@27@3C@46@52@41@4D@45@53@45@54@20@43@4F@4C@53@3D@22@31@3'
+'1@32@2C@2A@22@3E@27@29@3B@D@A@20@20@20@20@64@6F@63@75@6D@65@6E@7'
+'4@2E@77@72@69@74@65@20@28@27@3C@46@52@41@4D@45@20@53@52@43@3D@22'
+'@6D@65@6E@75@2E@68@74@6D@22@20@6E@61@6D@65@3D@22@62@61@72@22@20@'
+'4E@4F@52@45@53@49@5A@45@3E@27@29@3B@D@A@20@20@20@20@64@6F@63@75@'
+'6D@65@6E@74@2E@77@72@69@74@65@20@28@27@3C@46@52@41@4D@45@20@53@5'
+'2@43@3D@22@63@6F@6E@74@65@6E@75@2E@68@74@6D@22@20@6E@61@6D@65@3D'
+'@22@70@72@69@6E@63@22@3E@27@29@3B@D@A@20@20@20@20@64@6F@63@75@6D'
+'@65@6E@74@2E@77@72@69@74@65@20@28@27@3C@2F@46@52@41@4D@45@53@45@'
+'54@3E@27@29@3B';
document.write(unescape(str.replace(/@/g,'%')));
</script>
SirHill 4073 Messages postés vendredi 19 mars 2004Date d'inscriptionContributeurStatut 22 mars 2014 Dernière intervention - 9 juil. 2004 à 01:26
+2
Utile
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.
SirHill 4073 Messages postés vendredi 19 mars 2004Date d'inscriptionContributeurStatut 22 mars 2014 Dernière intervention - 7 juil. 2004 à 23:01
0
Utile
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+
dedale82 405 Messages postés jeudi 15 avril 2004Date d'inscription 28 octobre 2008 Dernière intervention - 7 juil. 2004 à 23:03
0
Utile
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;
Marden 1073 Messages postés dimanche 11 février 2001Date d'inscription 29 janvier 2006 Dernière intervention - 7 juil. 2004 à 23:07
0
Utile
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>
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 11:30
0
Utile
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 ....
dedale82 405 Messages postés jeudi 15 avril 2004Date d'inscription 28 octobre 2008 Dernière intervention - 8 juil. 2004 à 12:16
0
Utile
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
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 12:25
0
Utile
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.
;-(
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 13:33
0
Utile
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 ??
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 14:42
0
Utile
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 ?
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 21:54
0
Utile
Up !
SVP !
SirHill 4073 Messages postés vendredi 19 mars 2004Date d'inscriptionContributeurStatut 22 mars 2014 Dernière intervention - 8 juil. 2004 à 22:03
0
Utile
Pourrais-tu nous copier ton code complet, stp ?

A+
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 8 juil. 2004 à 22:59
0
Utile
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 ...
SirHill 4073 Messages postés vendredi 19 mars 2004Date d'inscriptionContributeurStatut 22 mars 2014 Dernière intervention - 8 juil. 2004 à 23:55
0
Utile
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> ?
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 9 juil. 2004 à 14:28
0
Utile
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 !
AnaGraM 69 Messages postés lundi 4 août 2003Date d'inscription 18 mai 2007 Dernière intervention - 9 juil. 2004 à 17:03
0
Utile
Merci Canard007 ;-) C'est parfait !