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

ajouter "?color=maroon" à une URL

17 réponses
Avatar
unbewusst.sein
Position du problème :

supposons que l'utilisateur interdise les cookies.

sur la page "index.html" il choisit une couleur qui règle toutes les
couleurs de la page :
la variable est "color" supposons que l'utilisateur ait choisi "maroon".

comme le choix de couleur est dans une form, l'url de la page d'index
devient :

index.html?color=maroon

maintenant j'ai un menu qui renvoit à d'autres pages du site, par ex :

autre_page.xhtml

comment récupérer le "?color=maroon" ???

j'imagine que cela peut se faire en prenant l'adresse de la précédente
page quand on arrive dans "autre_page.xhtml" ???

du genre referer ???

dans ce cas je pourrais piquer la couleur ?

10 réponses

1 2
Avatar
unbewusst.sein
Une Bévue wrote:

du genre referer ???


apparemment c'est l'objet "history" mais on ne peut accéder à :

history.item

d'après FF2 qui donne une erreur :
uncaught exception: Permission refusée d'appeler la méthode History.item

???

Avatar
unbewusst.sein
Une Bévue wrote:

du genre referer ???


OUI, mais referrer avec DEUX r ;-)

Avatar
ASM
Position du problème :

supposons que l'utilisateur interdise les cookies.

sur la page "index.html" il choisit une couleur qui règle toutes les
couleurs de la page :
la variable est "color" supposons que l'utilisateur ait choisi "maroon".

comme le choix de couleur est dans une form, l'url de la page d'index
devient :

index.html?color=maroon


donc index est l'action du form ?

maintenant j'ai un menu qui renvoit à d'autres pages du site, par ex :

autre_page.xhtml


toujours dans le form ?
ou sont-ce de bêtes liens ?

comment récupérer le "?color=maroon" ???


en l'attachant aux liens de page en page ?

<script type="text/javascript">
onload = function() {
var U = self.location.toString();
if(U.indexOf('?color')>0) {
U = U.split('?')[1];
var L = document.links; // ou doc.gEBI('menu').gEBTN('A')
for(var i=0; i<L.length; i++) L[i].href += '?'+U;
// colorisation de la page affichée
document.body.style.background = U.split('=')[1];
}
}


j'imagine que cela peut se faire en prenant l'adresse de la précédente
page quand on arrive dans "autre_page.xhtml" ???


ben oui, presque

du genre referer ???


ne fonctionne que sur un serveur (et au gré du brouteur)

dans ce cas je pourrais piquer la couleur ?


oui il y a moyen de piquer la couleur si attachée à l'adresse,
http//stephane.moriaux.perso.orange.fr/js/get_url_variables.js
et même aussi via cooky (malheureusement désactivés)
http//stephane.moriaux.perso.orange.fr/js/styleschange.js
(basé sur des css alternatives)

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
ASM
Une Bévue wrote:

du genre referer ???


OUI, mais referrer avec DEUX r ;-)


et encore ... si ...

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
unbewusst.sein
ASM wrote:

donc index est l'action du form ?


OUI


maintenant j'ai un menu qui renvoit à d'autres pages du site, par ex :

autre_page.xhtml


toujours dans le form ?
ou sont-ce de bêtes liens ?


de bête liens...


comment récupérer le "?color=maroon" ???


en l'attachant aux liens de page en page ?

<script type="text/javascript">
onload = function() {
var U = self.location.toString();
if(U.indexOf('?color')>0) {
U = U.split('?')[1];
var L = document.links; // ou doc.gEBI('menu').gEBTN('A')
for(var i=0; i<L.length; i++) L[i].href += '?'+U;
// colorisation de la page affichée
document.body.style.background = U.split('=')[1];
}
}


ça me donne une idée, changer dynamiquement les urls contenus dans le
menu.

donc je récupère le color=maroon sur la seule page où il y a une form
pour ça et pour tous les liens internes au site j'ajoute ?color=maroon

du genre :

var as=getElementsByTagname('a');
for(var i=0;i<as.length;i++){
if(isIntenalLink(as[i].href)) as[i].href+='?color=maroon';
}

qqc dans ce goût là (non testé).

autrement c'est le cookie.


Avatar
ASM
ASM wrote:

en l'attachant aux liens de page en page ?

<script type="text/javascript">
onload = function() {
var U = self.location.toString();
if(U.indexOf('?color')>0) {
U = U.split('?')[1];
var L = document.links; // ou doc.gEBI('menu').gEBTN('A')
for(var i=0; i<L.length; i++) L[i].href += '?'+U;
// colorisation de la page affichée
document.body.style.background = U.split('=')[1];
}
}


ça me donne une idée, changer dynamiquement les urls contenus dans le
menu.


C'est ce que je viens de te montrer ! :-/

donc je récupère le color=maroon sur la seule page où il y a une form
pour ça et pour tous les liens internes au site j'ajoute ?color=maroon


voilà

du genre :

var as=getElementsByTagname('a');


oui comme indiqué + haut :

L = doc.gEBI('menu').gEBTN('A')
for(var i=0; i<L.length; i++) if(L[i].href) L[i].href += '?'+U;


qqc dans ce goût là (non testé).


ça doit fonctionner :-)

autrement c'est le cookie.


ou bien c'est du server side

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
unbewusst.sein
ASM wrote:

<script type="text/javascript">
onload = function() {
var U = self.location.toString();
if(U.indexOf('?color')>0) {
U = U.split('?')[1];
var L = document.links; // ou doc.gEBI('menu').gEBTN('A')
for(var i=0; i<L.length; i++) L[i].href += '?'+U;
// colorisation de la page affichée
document.body.style.background = U.split('=')[1];
}
}


ça me donne une idée, changer dynamiquement les urls contenus dans le
menu.


C'est ce que je viens de te montrer ! :-/


ah zut j'avais mal lu ton script, oublié le :
L[i].href += '?'+U;

tiens d'ailleurs, quand la couleur dans la form est de type hexa :
#abcdef

le # est "traduit" par le post en %quelque chose.


<snip />


autrement c'est le cookie.


ou bien c'est du server side


oui mais bon, à part le php, je ne connais pas le serveur side.

et ça m'emballe pas du tout de passer mes pages en php juste pour ça.



Avatar
ASM
ASM wrote:

C'est ce que je viens de te montrer ! :-/


ah zut j'avais mal lu ton script, oublié le :
L[i].href += '?'+U;


Rhaa la la ! toujours dans la précépitation fébrile !

tiens d'ailleurs, quand la couleur dans la form est de type hexa :
#abcdef

le # est "traduit" par le post en %quelque chose.


c'est pourquoi il est conseillé de encoeURI() et decodeURI()
bien qu'ici escape() et unescape() suffisent
http://fr.selfhtml.org/javascript/objets/independant.htm#encode_uri

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
unbewusst.sein
ASM wrote:

c'est pourquoi il est conseillé de encoeURI() et decodeURI()
bien qu'ici escape() et unescape() suffisent
http://fr.selfhtml.org/javascript/objets/independant.htm#encode_uri


ok, merci pour le tuyau.

Avatar
loiseauthierry
Une Bévue wrote:

Quelques piste...

Position du problème :

supposons que l'utilisateur interdise les cookies.

sur la page "index.html" il choisit une couleur qui règle toutes les
couleurs de la page :
la variable est "color" supposons que l'utilisateur ait choisi "maroon".

comme le choix de couleur est dans une form, l'url de la page d'index
devient :

index.html?color=maroon


Je ferais plutôt un "?color=%27maroon%27" ; %27= apostrophe

maintenant j'ai un menu qui renvoit à d'autres pages du site, par ex :

autre_page.xhtml

comment récupérer le "?color=maroon" ???


Pour récupérer le search, je fais par exemple :

requete = unescape(window.location.search); // ?color='maroon'

eval(requete.substr(1));

et de là, cet exemple devrait marcher :

document.body.style.background=color;

Thierry
--
* * __*__ *
* * * -----oOOo---°O°---oOOo------ * *
<http://astrophoto.free.fr&gt; *
* * -------- oOOo oOOo -------- *

1 2