Problème de javascript

Problème de javascript - Programmation

Marsh Posté le 20-01-2001 à 16:06:50    

---ATTENTION MESSAGE LONG !---
Je suis en train de réaliser le site de seti@hardware.fr à partir de la charte graphique de hardware.fr (avec autorisation de marc !) et comme j'ai pas envie de devenir joce n°2 :D je veux faire des scripts qui fonctionnent bien ! celui que je suis en train de faire est le script pour les articles. comme on a pas récupéré le système php, on doit se taper les articles à la main... et notamment pour les histoires de page suivante/page précédente, et le menu déroulant pour accéder aux différentes parties de l'article. j'ai donc décidé de faire des javascripts pour automatiser tout ça. le premier pour le menu déroulant marche très bien, mais l'autre ne marche pas. explication détaillée :
je vous mets d'abord le code du script des menus déroulants, pour que vous retrouviez les variables utilisées dans le second script qui s'appelle menu.js (c'est un fichier indépendant inclus dans chaque page par une ligne <SCRIPT SRC = "menu.js"></SCRIPT> :
document.write('<SELECT SIZE=1 ONCHANGE="window.open(this.options[this.selectedIndex].value,' + "'_top';)" + '">';)
document.write('<OPTION VALUE="index.htm"> Sélectionnez une page </OPTION>';)
document.write('<OPTION VALUE="index.htm"></OPTION>';)
pages = new Array()
pages[1] = "Titre de la page 1"
pages[2] = "Titre de la page 2"
pages[3] = "Titre de la page 3"
pages[4] = "Titre de la page 4"
pages[5] = "Titre de la page 5"
urlpages = new Array()
urlpages[1] = "index.htm"
for(i=2;i<pages.length;i++)
{ urlpages[i] = "page" + i + ".htm"
}
loc = new String(window.location)
urlpage = ""
for(i=loc.length-9;i<loc.length;i++)
{ urlpage += loc.charAt(i)
}
for(i=1;i<pages.length;i++)
{ if(urlpage != urlpages[i])
ss{ document.write('<OPTION VALUE="' + urlpages[i] + '">' + pages[i] + '</OPTION>';)
ss}
sselse document.write('<OPTION VALUE="' + urlpages[i] + '"SELECTED>' + pages[i] + '</OPTION>';)
}
le rédacteur n'a ainsi qu'à faire ceci pour son article.
exemple de la page 1. dans la ligne pages[1] = "Titre de la page 1", il remplace titre de la page 1 par son titre. pour la page 2, il prend la ligne pages[2] = "Titre..." et il remplace par son titre. et ainsi de suite jusqu'à ce qu'il arrive à la fin. si son article fait 4 pages, il supprime la ligne pages[5] = ... si son article fait 6 pages, il rajoute une ligne pages[6] = "titre de la page 6". tout le reste est automatique (attention cependant, ça ne marche que pour des articles de 9 pages ou moins ! j'ai une astuce pour passer cette limitation, mais je vous passe les détails...)
ensuite, en fin de page, il y a les flèches page suivante et page précédente. ce n'est pas bien compliqué en soi de les automatiser. je suppose que les variables et les tableaux déclarés dans le premier script sont réutilisables. voilà le script que j'ai pondu, et que je voulais vérifier qu'il marchait avant d'insérer un système pour éviter de mettre page précédente au début de l'article, ou page suivante à la fin de l'article. mais j'ai une erreur de syntaxe à la ligne 31 (la dernière). voilà le script :
function pageprec()
{ for(i=1;i<pages.length;i++)
ss{ if(loc == urlpages[i])
ssss{ return urlpages[i-1]
ssss}
ss}
}
function pageprectitre()
{ for(i=1;i<pages.length;i++)
ss{ if(loc == urlpages[i])
ssss{ return pages[i-1]
ssss}
ss}
}
function pagesuiv()
{ for(i=1;i<pages.length;i++)
ss{ if(loc == urlpages[i])
ssss{ return urlpages[i+1]
ssss}
ss}
}
function pagesuivtitre()
{ for(i=1;i<pages.length;i++)
ss{ if(loc == urlpages[i])
ssss{ return pages[i+1]
ssss}
ss}
}
document.write("<TABLE WIDTH=570 BORDER=0 CELLSPACING=0 CELLPADDING=0><TR>" )
document.write('<TD WIDTH=270><a href="' + pageprec() + '">&lt;&lt; <font FACE="Arial" SIZE="2">Page précédente</a><br>';)
document.write(<pageprectitre() + '<FONT FACE="Arial, Helvetica" SIZE=2></FONT><BR></TD><TD WIDTH=20><IMG SRC="/images/pixel.gif" WIDTH=15 HEIGHT=1 BORDER=0></TD>';)
document.write('<TD WIDTH=270><DIV ALIGN=RIGHT><FONT FACE="Arial, Helvetica" SIZE=2><a href="' + pagesuiv() + '">Page suivante</a><br>' + pagesuivtitre() + '</font><BR></DIV></TD></TR></TABLE><P>';)
et là je comprends pas ce qui se passe. le caractère 16 de la ligne 31 est le ' juste après document.write( et je ne comprends pas en quoi c'est incorrect. vous pouvez vous rendre compte du problème sur cette page : http://www.multimania.com/forumhar [...] /page2.htm (page2.htm pour avoir une page avant et une page après)
donc si qqn peut m'aider... les deux scripts sont dans le dossier masque aussi. si vous voulez les récupérer pour les examiner...
Merci de votre aide !

 

Reply

Marsh Posté le 20-01-2001 à 16:06:50   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed