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 :
Javascript - Interdire le clic droit de la souris VoirIl est possible d'empêcher que votre visiteur effectue un clic droit sur votre page. Ceci permet une protection relative de vote code source et de vos photos. Placez ce script entre les balises et de votre code HTML :
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...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...
Javascript - Implantation du code VoirA quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise...

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