Rechercher : dans
Par :

Afficher du html en javascript

Dernière réponse le 9 jui 2004 à 17:03:23 AnaGraM, le 7 jui 2004 à 21:47:25 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « afficher du html en javascript » dans :
[FreeMind] Publier une mindmap dans une page web VoirFreeMind est un logiciel de mindmapping. Vous avez plusieurs possibilités pour publier votre mindmap dans une page web. Flash applet Java Simple image PNG HTML+Javascript (texte seulement) HTML+Javascript (texte+icônes) HTML+Javascript...
Javascript - Connaître la hauteur d'un élément HTML VoirSi vous souhaitez connaître la hauteur (height) d'un bloc HTML en javascript, il existe deux façons selon les navigateurs : element.offsetHeight element.style.pixelHeight Ainsi, le code suivant permet d'obtenir la hauteur d'un bloc HTML...

1

SirHill, le 7 jui 2004 à 23:01:08

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+

Répondre à SirHill

2

dedale82, le 7 jui 2004 à 23:03:34

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;

Répondre à dedale82

3

Marden, le 7 jui 2004 à 23:07:00

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>

Répondre à Marden

4

AnaGraM, le 8 jui 2004 à 11:30:55

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 ....

Répondre à AnaGraM

5

dedale82, le 8 jui 2004 à 12:16:04

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

Répondre à dedale82

6

AnaGraM, le 8 jui 2004 à 12:25:59

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.
;-(

Répondre à AnaGraM

7

AnaGraM, le 8 jui 2004 à 13:33:04

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 ??

Répondre à AnaGraM

8

AnaGraM, le 8 jui 2004 à 14:42:46

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 ?

Répondre à AnaGraM

9

AnaGraM, le 8 jui 2004 à 21:54:58

Up !
SVP !

Répondre à AnaGraM

10

SirHill, le 8 jui 2004 à 22:03:02

Pourrais-tu nous copier ton code complet, stp ?

A+

Répondre à SirHill

11

AnaGraM, le 8 jui 2004 à 22:59:21

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 ...

Répondre à AnaGraM

12

SirHill, le 8 jui 2004 à 23:55:31

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> ?

Répondre à SirHill

13

SirHill, le 9 jui 2004 à 01:26:19

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.

Répondre à SirHill

14

AnaGraM, le 9 jui 2004 à 14:28:50

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 !

Répondre à AnaGraM

15

Canard007, le 9 jui 2004 à 14:56:07

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

Répondre à Canard007

16

 AnaGraM, le 9 jui 2004 à 17:03:23

Merci Canard007 ;-) C'est parfait !

Répondre à AnaGraM