Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

navigation, fichiers et javascript

4 réponses
Avatar
Lt_PyL
Salut à tous!

Voilà, j'ai un souci

J'ai des fichiers .html dans des directories. Ces fichiers sont nommés
au format A1.html A2.html ... A99.html
(la série B est dans un répertoire séparé, la C également, etc..).

J'aimerais créer un script qui s'insèrerait dans chaque page par un
artifice css et qui fonctionnerait un peu comme suit (attention: code
crasseux et non-fonctionnel):

/*on extrait le nom du fichier*/
var Nom=NomDuFichierEnCours

/*on extrait la "racine": la lettre*/
var racine=Nom-[0-9]-".html"

/*on extrait l'indice: le numéro de la page*/
var indice=Nom-".html"-[A-Za-z]

/*incrémentation de l'indice pour passer au fichier suivant*/
indice++

/*reconstruction de la chaîne*/
var nouveaunom=racine+indice+".html"

/*vérification de l'existence du fichier sur le serveur*/
/*je doute que la méthode activex soit vraiment bonne*/
/*mais bon, on va prendre ça pour l'exemple*/

var fso=new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists("nom du fichier"))
/*ouverture de la page, etc....*/

Le Javascript n'est pas mon fort (ça se voit), mais il semblerait que ce
genre de chose ne soit pas vraiment faisable en javascript...

Je le ferais bien en VBscript, mais ça me ferait mal de devoir limiter
de la sorte l'accès de mon site aux utilisateurs d'IE (que je n'utilise
pas moi-même)...

J'avais vaguement pensé à utiliser un Action Script en Flash, mais ça me
paraît un peu "usine à gaz", surtout pour récupérer le nom du fichier
html...


Quelqu'un aurait une idée?

merci d'avance

Lt_PyL

4 réponses

Avatar
Olivier Miakinen

J'ai des fichiers .html dans des directories. Ces fichiers sont nommés
au format A1.html A2.html ... A99.html
(la série B est dans un répertoire séparé, la C également, etc..).

J'aimerais créer un script qui s'insèrerait dans chaque page par un
artifice css et qui fonctionnerait un peu comme suit (attention: code
crasseux et non-fonctionnel):


Voyons voir.

/*on extrait le nom du fichier*/
var Nom=NomDuFichierEnCours

/*on extrait la "racine": la lettre*/
var racine=Nom-[0-9]-".html"

/*on extrait l'indice: le numéro de la page*/
var indice=Nom-".html"-[A-Za-z]


http://fr.selfhtml.org/javascript/objets/regexp.htm

var format = /([A-Z])([0-9]+).html/;
format.exec(NomDuFichierEnCours);
var racine = RegExp.$1;
var indice = + RegExp.$2;
(le « + » unaire permet de transformer la chaîne en nombre)

/*incrémentation de l'indice pour passer au fichier suivant*/
indice++

/*reconstruction de la chaîne*/
var nouveaunom=racine+indice+".html"


Ok.

/*vérification de l'existence du fichier sur le serveur*/
/*je doute que la méthode activex soit vraiment bonne*/
/*mais bon, on va prendre ça pour l'exemple*/


Pour cela, j'utilise XmlHttpRequest, ou plus exactement la fonction
getHTTPObject() que j'ai trouvée ici :
http://openweb.eu.org/articles/objet_xmlhttprequest/
Note qu'il vaut mieux faire une requête HEAD plutôt que GET.

Je suppose que Ajax fait la même chose, mais je n'y ai pas encore
fourré mon nez.

Avatar
Pierre Goiffon
Olivier Miakinen wrote:
J'ai des fichiers .html dans des directories. Ces fichiers sont nommés
au format A1.html A2.html ... A99.html
(la série B est dans un répertoire séparé, la C également, etc..).

J'aimerais créer un script qui s'insèrerait dans chaque page par un
artifice css et qui fonctionnerait un peu comme suit (attention: code
crasseux et non-fonctionnel):
(...)


/*vérification de l'existence du fichier sur le serveur*/
/*je doute que la méthode activex soit vraiment bonne*/
/*mais bon, on va prendre ça pour l'exemple*/


Pour cela, j'utilise XmlHttpRequest, ou plus exactement la fonction
getHTTPObject() que j'ai trouvée ici :
http://openweb.eu.org/articles/objet_xmlhttprequest/
Note qu'il vaut mieux faire une requête HEAD plutôt que GET.


Si j'ai bien compris, il s'agit de construire un menu de navigation non
? Dans ce cas il me parait bien plus indiquer d'utiliser un traitement
côté serveur, ou un préprocesseur avant upload des fichiers du site !


Avatar
Olivier Miakinen

Si j'ai bien compris, il s'agit de construire un menu de navigation non
? Dans ce cas il me parait bien plus indiquer d'utiliser un traitement
côté serveur, ou un préprocesseur avant upload des fichiers du site !


Bon sang, mais c'est bien sûr !

Il se trouve que quelqu'un vient de me remémorer un développement que
j'avais fait il y a quelque temps, et où les ressources en question
n'étaient pas forcément sur la même machine que la page web principale
(et qu'en outre on ne disposait pas de Perl ou de PHP à l'époque).

Mais bien évidemment, sauf contrainte spécifique du même genre, le
lieutenant Pyl aurait tout intérêt à faire le traitement côté serveur
plutôt que côté client.

Avatar
Lt_PyL
J'ai des fichiers .html dans des directories. Ces fichiers sont nommés
au format A1.html A2.html ... A99.html
(la série B est dans un répertoire séparé, la C également, etc..).

J'aimerais créer un script qui s'insèrerait dans chaque page par un
artifice css et qui fonctionnerait un peu comme suit (attention: code
crasseux et non-fonctionnel):


Voyons voir.

/*on extrait le nom du fichier*/
var Nom=NomDuFichierEnCours

/*on extrait la "racine": la lettre*/
var racine=Nom-[0-9]-".html"

/*on extrait l'indice: le numéro de la page*/
var indice=Nom-".html"-[A-Za-z]


http://fr.selfhtml.org/javascript/objets/regexp.htm

var format = /([A-Z])([0-9]+).html/;
format.exec(NomDuFichierEnCours);
var racine = RegExp.$1;
var indice = + RegExp.$2;
(le « + » unaire permet de transformer la chaîne en nombre)

/*incrémentation de l'indice pour passer au fichier suivant*/
indice++

/*reconstruction de la chaîne*/
var nouveaunom=racine+indice+".html"


Ok.

/*vérification de l'existence du fichier sur le serveur*/
/*je doute que la méthode activex soit vraiment bonne*/
/*mais bon, on va prendre ça pour l'exemple*/


Pour cela, j'utilise XmlHttpRequest, ou plus exactement la fonction
getHTTPObject() que j'ai trouvée ici :
http://openweb.eu.org/articles/objet_xmlhttprequest/
Note qu'il vaut mieux faire une requête HEAD plutôt que GET.

Je suppose que Ajax fait la même chose, mais je n'y ai pas encore
fourré mon nez.


super!
ça fonctionne parfaitement!
le regexp, finalement, ça marche plutôt bien!

Et effectivement, j'ai des contraintes assez gênantes (pas de perl, ni
de php) qui me poussent à utiliser javascript pour ce qu'il n'est pas
sensé faire (à priori)

J'avais regardé un peu du côté d'Ajax, il fait la même chose (à coups
d'activex il me semble), mais je n'ai pas encore bien saisi comment le
mettre en oeuvre (en clair: quel .js charger avant d'en utiliser les
fonctions et méthodes? y'en a un petit paquet et la doc n'est pas super
explicite)

merci encore!

Lt_PyL