Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Appel d'un frameset avec une page specifique
Envoyé: 11 août 2004, 7h19 par Oznog
Oui c'est possible en deux étapes.
1. Tu dois passer le nom du fichier dans l'en-tête http (méthode get).
monJeuDeCadres.htm?url=cadre.htm
2. Tu dois générer ton jeu de cadre à l'aide du Javascript.
document.write('<frame SRC="' + url + '" name="cadre">')
Bon, c'est l'idée. Le hic c'est de récupérer une valeur de l'en-tête http. Avec un langage serveur c'est tout simple mais en Javascript c'est une autre histoire.
Par exemple en ASP c'est :
request.querystring("url")
Mais en Javascript c'est :
<html>
<head>
<script type="text/javascript" language="javascript">
<!--
// ********************************************
// Récupération de paramètre d'une requête HTTP
// ou récupération des données d'un formulaire.
// Auteur : Oznog (www.trucsweb.com)
// ********************************************
// NE PAS MODIFIER CE CODE
var paramOk = true;
function FaitTableau(n) {
// Création d'un tableau (array)
// aux dimensions du nombre de paramètres.
this.length = n;
for (var i = 0; i <= n; i++) {
this[i] = 0
}
return this
}
function ParamValeur(nValeur) {
// Récupération de la valeur d'une variable
// Pour créer la variable en Javascript.
var nTemp = "";
for (var i=0;i<(param.length+1);i++) {
if (param[i].substring(0,param[i].indexOf("=")) == nValeur)
nTemp = param[i].substring(param[i].indexOf("=")+1,param[i].length)
}
return Decode(nTemp)
}
// Extraction des paramètres de la requête HTTP
// et initialise la variable "paramOk" à false
// s'il n'y a aucun paramètre.
if (!location.search) {
paramOk = false;
}
else {
// Éliminer le "?"
nReq = location.search.substring(1,location.search.length)
// Extrait les différents paramètres avec leur valeur.
nReq = nReq.split("&");
param = new FaitTableau(nReq.length-1)
for (var i=0;i<(nReq.length);i++) {
param[i] = nReq[i]
}
}
// Décoder la requête HTTP
// manuellement pour le signe (+)
function Decode(tChaine) {
while (true) {
var i = tChaine.indexOf('+');
if (i < 0) break;
tChaine = tChaine.substring(0,i) + '%20' + tChaine.substring(i + 1, tChaine.length);
}
return unescape(tChaine)
}
// -->
</script>
</head>
<frameset cols="200,*">
<frame SRC="menu.htm" name="menu">
<script type="text/javascript" language="javascript">
<!--
var url = "";
if (paramOk) {
url = ParamValeur("url");
document.write('<frame SRC="' + url + '" name="corps">')
} else {
// Page par défaut (accueil) si aucune valeur
document.write('<frame SRC="pageAccueil.htm" name="corps">')
}
// -->
</script>
</frameset>
</html>
Ciao
Oznog
Réponses
|