Help AJAX pour identifier une ancre de page et agir en conséquence
8 messages
• Page 1 sur 1
-

HawkEye - WRInaute accro

- Messages: 17013
- Inscription: 23 Fév 2004
Help AJAX pour identifier une ancre de page et agir en conséquence
Hello,
N'ayant aucune connaissance en la matière, je pense néanmoins qu'il est possible via AJAX de détecter la présence d'une ancre dans l'URL d'une page, et d'agir en conséquence sur le contenu généré par php...
En l'occurrence, voici ce que je voudrais faire:
Page exemple.com/dossier/article
--> un <div> est en "display: none;"
Page exemple.com/dossier/article#anchor
--> ce même <div> est en "display: block;"
Est-ce que quelqu'un aurait une idée simple et légère à mettre en place ?
Thanks !
N'ayant aucune connaissance en la matière, je pense néanmoins qu'il est possible via AJAX de détecter la présence d'une ancre dans l'URL d'une page, et d'agir en conséquence sur le contenu généré par php...
En l'occurrence, voici ce que je voudrais faire:
Page exemple.com/dossier/article
--> un <div> est en "display: none;"
Page exemple.com/dossier/article#anchor
--> ce même <div> est en "display: block;"
Est-ce que quelqu'un aurait une idée simple et légère à mettre en place ?
Thanks !
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: Help AJAX pour identifier une ancre de page et agir en conséquence
Parce que les ancres étant gérées au niveau du navigateur, elles ne sont pas (à ma connaissance) récupérables en PHP.
@HawkEye : il y a ce plugin prototype qui permet des interactions avec les ancres : http://www.forgeniuses.com/2007/11/05/ajax-anchor-component-for-prototype/
Ceci dit, je suis franchement pas convaincu, vu ce que tu cherches a priori à faire, que tu as besoin d'Ajax. L'utilisation de JS suffirait il me semble.
@HawkEye : il y a ce plugin prototype qui permet des interactions avec les ancres : http://www.forgeniuses.com/2007/11/05/ajax-anchor-component-for-prototype/
Ceci dit, je suis franchement pas convaincu, vu ce que tu cherches a priori à faire, que tu as besoin d'Ajax. L'utilisation de JS suffirait il me semble.
-

HawkEye - WRInaute accro

- Messages: 17013
- Inscription: 23 Fév 2004
Re: Help AJAX pour identifier une ancre de page et agir en conséquence
Après de plus profondes recherches, effectivement, JS suffit 
Je suis vraiment une grosse bille en JS. Voici ce que j'ai fait, au cas où quelqu'un y verrait une amélioration à apporter
Je suis vraiment une grosse bille en JS. Voici ce que j'ai fait, au cas où quelqu'un y verrait une amélioration à apporter
- Code: Tout sélectionner
<body onload="forceshow('init_hidden');">
(...)
<script type="text/javascript">
function forceshow(elem) {
if(self.document.location.hash.substring(1)!="") {
etat=document.getElementById(elem).style.display;
if(etat=="none") {
document.getElementById(elem).style.display="block";
}
}
}
</script>
(...)
<div id="init_hidden" style="display:none;">TEST</div>
-

UsagiYojimbo - WRInaute accro

- Messages: 8575
- Inscription: 23 Nov 2005
Re: Help AJAX pour identifier une ancre de page et agir en conséquence
Pour optimiser ça (notamment l'appel à getElementById, le listener au load de la page, etc.), je te conseille davantage d'utiliser un framework JS, comme prototype ou jQuery. En il convient de tester l'existence d'un élément avant d'y faire appel.
-

HawkEye - WRInaute accro

- Messages: 17013
- Inscription: 23 Fév 2004
Re: Help AJAX pour identifier une ancre de page et agir en conséquence
OK mais le onload="forceshow('init_hidden');" sur <body> ne sera généré par php que si le <div> "init_hidden" a été généré auparavant.
Je vais néanmoins me rencarder un peu plus sur prototype
Merci !
Le seul "souci" qui me reste, c'est dans le cas (rare mais possible) où le lien vers l'url avec une ancre provient de la page elle-même, et non d'une autre page...
En effet, dans ce cas là je pense que vu que la page n'est pas rechargée, la condition "onload" n'est pas remplie, et la fonction n'est pas exécutée.
Exemple:
-> est-ce qu'il existerait autrechose que onload ?
Je vais néanmoins me rencarder un peu plus sur prototype
Merci !
Le seul "souci" qui me reste, c'est dans le cas (rare mais possible) où le lien vers l'url avec une ancre provient de la page elle-même, et non d'une autre page...
En effet, dans ce cas là je pense que vu que la page n'est pas rechargée, la condition "onload" n'est pas remplie, et la fonction n'est pas exécutée.
Exemple:
- Code: Tout sélectionner
<div caché><a name="test"></a>blabla</div>
(...)
<div visible><a href="#test">test</a></div>
-> est-ce qu'il existerait autrechose que onload ?
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: Help AJAX pour identifier une ancre de page et agir en conséquence
sur ton lien : onclick="forceshow();"
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Annuaire et pages internes Agir
- Annonce non conforme au réglement, 72h pour agir!
- Agir sur une erreur d'exploitation récurrente dans GWT
- [AJAX] Validation de form en ajax : captcha non reconnu
- Partenariat / echange de lien Agir XIX (XIX éme siécle)
- identifier un hote
- Identifier un cookie de session
- identifier le lobbi-isme
- Identifier le Bot Google ?
- Identifier des robots
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


