Bonjour,
Est-il possible de v=E9rifier si une URL correspond bien =E0 une page
existante avant de faire un window.open ?
Je veux faire une cellule de navigation rapide : je tape un code dans
un input et ce code correspond =E0 un nom de fichier (=3DCODE.html)
Malheureusement, ce fichier peut a priori se trouver dans plusieurs
r=E9pertoires.
L'id=E9e de l'algo =E9tait
boucle sur une liste contenant les r=E9pertoires =E0 scruter (cod=E9e en
dur dans le script)
Si le fichier est dans ce r=E9pertoire, je l'affiche et je sors de la
boucle
fin de boucle
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
fgirault
wrote:
Bonjour, Est-il possible de vérifier si une URL correspond bien à une page existante avant de faire un window.open ?
Je veux faire une cellule de navigation rapide : je tape un code dans un input et ce code correspond à un nom de fichier (=CODE.html) Malheureusement, ce fichier peut a priori se trouver dans plusieurs répertoires. L'idée de l'algo était
boucle sur une liste contenant les répertoires à scruter (codée en dur dans le script) Si le fichier est dans ce répertoire, je l'affiche et je sors de la boucle fin de boucle
Merci
Je pense que ce n'est un bonne idée de vouloir réaliser une scrutation depuis le client.
Les temps de réponse vont fortement pénaliser l'utilisateur ...
A votre place, je réaliserai un script serveur chargé de cette recherche. Ainsi, une seule requête s'effectuera au lieu de X requêtes.
Si vous y tenez vraiment, vous pouvez utiliser XmlHttpRequest et tester son retour.
-- François
dvvh25tuf0wvl2j@jetable.com wrote:
Bonjour,
Est-il possible de vérifier si une URL correspond bien à une page
existante avant de faire un window.open ?
Je veux faire une cellule de navigation rapide : je tape un code dans
un input et ce code correspond à un nom de fichier (=CODE.html)
Malheureusement, ce fichier peut a priori se trouver dans plusieurs
répertoires.
L'idée de l'algo était
boucle sur une liste contenant les répertoires à scruter (codée en
dur dans le script)
Si le fichier est dans ce répertoire, je l'affiche et je sors de la
boucle
fin de boucle
Merci
Je pense que ce n'est un bonne idée de vouloir réaliser une
scrutation depuis le client.
Les temps de réponse vont fortement pénaliser l'utilisateur ...
A votre place, je réaliserai un script serveur chargé de cette
recherche. Ainsi, une seule requête s'effectuera au lieu de X
requêtes.
Si vous y tenez vraiment, vous pouvez utiliser XmlHttpRequest et tester
son retour.
Bonjour, Est-il possible de vérifier si une URL correspond bien à une page existante avant de faire un window.open ?
Je veux faire une cellule de navigation rapide : je tape un code dans un input et ce code correspond à un nom de fichier (=CODE.html) Malheureusement, ce fichier peut a priori se trouver dans plusieurs répertoires. L'idée de l'algo était
boucle sur une liste contenant les répertoires à scruter (codée en dur dans le script) Si le fichier est dans ce répertoire, je l'affiche et je sors de la boucle fin de boucle
Merci
Je pense que ce n'est un bonne idée de vouloir réaliser une scrutation depuis le client.
Les temps de réponse vont fortement pénaliser l'utilisateur ...
A votre place, je réaliserai un script serveur chargé de cette recherche. Ainsi, une seule requête s'effectuera au lieu de X requêtes.
Si vous y tenez vraiment, vous pouvez utiliser XmlHttpRequest et tester son retour.
-- François
Jice
Merci pour cette réponse. En fait, il ne s'agit pas de scruter mais bien de "spéculer" : par exemple, j'ai deux répertoires : titi toto et j'essaie ouvrir ../titi/monfichier.html Si j'ai une erreur, j'ouvre ../toto/monfichier.html
Je ne souhaite pas écrire de script serveur car pour l'instant l'ensemble des pages est composé de html pur avec 2 fonctions de javascript. Cela permet de rendre disponible l'ensemble du document au téléchargement sans se soucier de la configuration des postes.
Je connais les répertoires (en nombre limité) dans lesquels le fichier est susceptible de se trouver donc je voudrais faire cela par tests successifs car le listing des répertoires en question pour tester si le fichier se trouve dedans serait certainement plus long.
En tout cas, merci pour votre réponse, je vais essayer de voir comment l'appliquer.
Jice
Merci pour cette réponse.
En fait, il ne s'agit pas de scruter mais bien de "spéculer" :
par exemple, j'ai deux répertoires :
titi
toto
et j'essaie
ouvrir ../titi/monfichier.html
Si j'ai une erreur,
j'ouvre ../toto/monfichier.html
Je ne souhaite pas écrire de script serveur car pour l'instant
l'ensemble des pages est composé de html pur avec 2 fonctions de
javascript. Cela permet de rendre disponible l'ensemble du document au
téléchargement sans se soucier de la configuration des postes.
Je connais les répertoires (en nombre limité) dans lesquels le
fichier est susceptible de se trouver donc je voudrais faire cela par
tests successifs car le listing des répertoires en question pour
tester si le fichier se trouve dedans serait certainement plus long.
En tout cas, merci pour votre réponse, je vais essayer de voir comment
l'appliquer.
Merci pour cette réponse. En fait, il ne s'agit pas de scruter mais bien de "spéculer" : par exemple, j'ai deux répertoires : titi toto et j'essaie ouvrir ../titi/monfichier.html Si j'ai une erreur, j'ouvre ../toto/monfichier.html
Je ne souhaite pas écrire de script serveur car pour l'instant l'ensemble des pages est composé de html pur avec 2 fonctions de javascript. Cela permet de rendre disponible l'ensemble du document au téléchargement sans se soucier de la configuration des postes.
Je connais les répertoires (en nombre limité) dans lesquels le fichier est susceptible de se trouver donc je voudrais faire cela par tests successifs car le listing des répertoires en question pour tester si le fichier se trouve dedans serait certainement plus long.
En tout cas, merci pour votre réponse, je vais essayer de voir comment l'appliquer.
Jice
Pierre Goiffon
wrote:
Est-il possible de vérifier si une URL correspond bien à une page existante avant de faire un window.open ?
XMLHttpRequest, récupérer le status HTTP en retour Il y a un bon article d'introduction à XMLHttpRequest sur Openweb.eu.org, mais le site ne semble pas répondre
dvvh25tuf0wvl2j@jetable.com wrote:
Est-il possible de vérifier si une URL correspond bien à une page
existante avant de faire un window.open ?
XMLHttpRequest, récupérer le status HTTP en retour
Il y a un bon article d'introduction à XMLHttpRequest sur
Openweb.eu.org, mais le site ne semble pas répondre
Est-il possible de vérifier si une URL correspond bien à une page existante avant de faire un window.open ?
XMLHttpRequest, récupérer le status HTTP en retour Il y a un bon article d'introduction à XMLHttpRequest sur Openweb.eu.org, mais le site ne semble pas répondre
Jice
Merci à ceux qui m'ont donné quelques idées. Voici donc la fonction que j'ai retenue (si cela intéresse quelqu'un)
function quickNavigate(str) { if (str != '') { var xhrRef = null; var lstRep=new Array('Fich', 'Fich', 'Tirf', 'Tirf', 'Tact', 'Tact'); // Les éléments sont doublés pour contourner un bug // non identifié : seuls les répertoires impairs fonctionnent var url='';
// Je choisi l'objet en fonction du navigateur if (window.XMLHttpRequest) // Firefox { xhrRef = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhrRef = new ActiveXObject("Microsoft.XMLHTTP"); } else { // XMLHttpRequest non supporté par le navigateur alert("Pas de support des objets XMLHTTPRequest..."); return; }
// Je regarde dans chacun des répertoires si le // fichier s'y trouve for (i=0; i<lstRep.length; i++) { var rep=lstRep[i]; // Construction du nom du fichier url="../" + rep + "/" + str + ".html";
xhrRef.open("GET", url, false); try { xhrRef.send(null); // Si la page n'existe pas, une exception //est lancée } catch (error) { continue; } // Si aucune exception n'a été lancée, j'ouvre la page window.open(url, "_self"); break; } } return false; }
Merci à ceux qui m'ont donné quelques idées.
Voici donc la fonction que j'ai retenue (si cela intéresse quelqu'un)
function quickNavigate(str)
{
if (str != '')
{
var xhrRef = null;
var lstRep=new Array('Fich', 'Fich', 'Tirf', 'Tirf',
'Tact', 'Tact');
// Les éléments sont doublés pour contourner un bug
// non identifié : seuls les répertoires impairs fonctionnent
var url='';
// Je choisi l'objet en fonction du navigateur
if (window.XMLHttpRequest) // Firefox
{
xhrRef = new XMLHttpRequest();
} else if(window.ActiveXObject) { // Internet Explorer
xhrRef = new ActiveXObject("Microsoft.XMLHTTP");
} else { // XMLHttpRequest non supporté par le navigateur
alert("Pas de support des objets XMLHTTPRequest...");
return;
}
// Je regarde dans chacun des répertoires si le
// fichier s'y trouve
for (i=0; i<lstRep.length; i++)
{
var rep=lstRep[i];
// Construction du nom du fichier
url="../" + rep + "/" + str + ".html";
xhrRef.open("GET", url, false);
try
{
xhrRef.send(null);
// Si la page n'existe pas, une exception
//est lancée
} catch (error) {
continue;
}
// Si aucune exception n'a été lancée, j'ouvre la page
window.open(url, "_self");
break;
}
}
return false;
}
Merci à ceux qui m'ont donné quelques idées. Voici donc la fonction que j'ai retenue (si cela intéresse quelqu'un)
function quickNavigate(str) { if (str != '') { var xhrRef = null; var lstRep=new Array('Fich', 'Fich', 'Tirf', 'Tirf', 'Tact', 'Tact'); // Les éléments sont doublés pour contourner un bug // non identifié : seuls les répertoires impairs fonctionnent var url='';
// Je choisi l'objet en fonction du navigateur if (window.XMLHttpRequest) // Firefox { xhrRef = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhrRef = new ActiveXObject("Microsoft.XMLHTTP"); } else { // XMLHttpRequest non supporté par le navigateur alert("Pas de support des objets XMLHTTPRequest..."); return; }
// Je regarde dans chacun des répertoires si le // fichier s'y trouve for (i=0; i<lstRep.length; i++) { var rep=lstRep[i]; // Construction du nom du fichier url="../" + rep + "/" + str + ".html";
xhrRef.open("GET", url, false); try { xhrRef.send(null); // Si la page n'existe pas, une exception //est lancée } catch (error) { continue; } // Si aucune exception n'a été lancée, j'ouvre la page window.open(url, "_self"); break; } } return false; }