Alors là, je ne sais plus quoi penser ....
je m'explique :
je fais un script qui permet d'ecrire tout le contenu d'une page (une frame en fait). Ainsi, je fais des
top.frames[frame].document.write('truc');
mais ça ,j'en fais plein:
Code :
- top.frames[frame].document.write('<html>');
- top.frames[frame].document.write('<!-- page générée automatiquement par JavaScript-->');
- top.frames[frame].document.write('<head>');
- top.frames[frame].document.write('<style type="text/css">');
- top.frames[frame].document.write(' <!--');
- top.frames[frame].document.write(' a:link {text-decoration:none; color:'+couleur+';}');
- top.frames[frame].document.write(' a:visited {text-decoration:none; color:'+couleur+';}');
- top.frames[frame].document.write(' a:hover {text-decoration:underline; color:'+couleur+';}');
- top.frames[frame].document.write(' -->');
- top.frames[frame].document.write('</style>');
- top.frames[frame].document.write('</head>');
- top.frames[frame].document.write('<body marginheight="0" marginwidth="0">');
|
ça c pour l'entete.
ensuite, j'ecris dedans un menu automatiquement genere. Pour cela, j'ai une fonction qui me retourne la chaine de caractere contenant le code HTML pour le menu (ça fait au moins 2000 caracteres ...). mais je pense pas que le pb vienne de là.
puis ensuite, je n'ai plus qu'a ecrire la fin :
Code :
- top.frames[frame].document.writeln('</body>');
- top.frames[frame].document.writeln('</html>');
- top.frames[frame].document.writeln('<!-- Fin de la page générée -->');
|
Bon, jusque là, tout aller bien (sous IE4 ou plus, NS4.x et NS6).
puis je me dis; tiens je vais mettre des info bulles sur les liens du menu. Donc, je me sert de script pour faire ça.
Donc il faut que je mette le script dans la page.
Alors pour ça, je me suis dis que le plus simple, c'est de mettre mon script dans un fichier separée, puis de revoir mon entete :
Code :
- top.frames[frame].document.writeln('<html>');
- top.frames[frame].document.writeln('<!-- page générée automatiquement par JavaScript-->');
- top.frames[frame].document.writeln('<head>');
- top.frames[frame].document.writeln('<style type="text/css">');
- top.frames[frame].document.writeln(' <!--');
- top.frames[frame].document.writeln(' a:link {text-decoration:none; color:'+couleur+';}');
- top.frames[frame].document.writeln(' a:visited {text-decoration:none; color:'+couleur+';}');
- top.frames[frame].document.writeln(' a:hover {text-decoration:underline; color:'+couleur+';}');
- top.frames[frame].document.writeln(' -->');
- top.frames[frame].document.writeln('</style>');
- top.frames[frame].document.writeln('<script language="javascript" src="cgi-bin/infobulle.js"></script>');
- top.frames[frame].document.writeln('</head>');
- top.frames[frame].document.writeln('<body marginheight="0" marginwidth="0">');
- top.frames[frame].document.writeln('<script language="JavaScript">InitBulle("black","#FFFFE7","black",70);</script>');
|
voila ya les 2 lignes en plus; la premiere pour l'inclure, l'autre pour executer le script (donc apres la balise BODY).
J'essai sous IE; no pb
sous NS (4.x et 6); ça ne marche pas (bon ok je m'y attendais).
la raison ? lui me sort comme erreur (dans la console):
Code :
- JavaScript Error: file:/D|/projet/new
- site/accueil.htm, line 15:
- InitBulle is not defined.
|
alors il faut savoir que acceuil.htm, c une page qui est affichée au debut (d'ou le nom ), mais meme pas dans cette frame là ... (dans celle située a droite)
En fait, j'ai l'impression que qd j'ecris dans la page avec doc.write(), ça ecrit bien, mais par contre il ne comprend pas ce qu'il ecrit ?? ainsi, il ne cahrge pas le script...
mais alors, pourquoi l'erreur est dans une autre page ??
alors je me demande ce qu'il se passe qd on fait un document.write(), qd le document contient deja des trucs.
Je m'explique : qd j'ecris toute la page, elle contenait deja des trucs dedans.... alors ils deviennent quoi ces trucs? le probleme vient peut etre de là ?
ya pas une fonction document.erase(), ou un truc du style ?
bref, vous l'aurez compris, là je ne vois vraiment aps d'ou ça vient ....
un paquet de carambars a celui qui trouve !
Message édité par petoulachi le 06-11-2012 à 17:24:39