OVH Cloud OVH Cloud

créer une (pseudo)page à la volée

7 réponses
Avatar
pere.noel
à la page : <www.yvon-thoraval.com/JS/events/onclick.html>

quand on clique sur une image "low" ça envoie le nav sur une img en
vraie grandeur.

document.location=<l'image en vraie grandeur>;


au lieu de cela je préférerait une pseudo page créée à la volée, soit
par ex simplement :

<a href="../onclick.html"><img src="grande image" /></a>

ou history.back();


et ce sans ouvrir une autre fenêtre|onglet ???
--
Père Noël

7 réponses

Avatar
ASM

au lieu de cela je préférerait une pseudo page créée à la volée, soit
par ex simplement :

<a href="../onclick.html"><img src="grande image" /></a>


<a href="../onclick.html"
onclick="this.href+='?'+escape(this.getElementsByTagName('img')[0].src)">
<img src="grande image.pict" />
</a>

onclick.html :

<html>
<img src="">
<script type="text/javascript">
document.images[0].src='dossier_images/'+self.location.toString().split('?')[1];
</script>
</html>


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

Avatar
pere.noel
ASM wrote:


<a href="../onclick.html"
onclick="this.href+='?'+escape(this.
getElementsByTagName('img')[0].src)">

<img src="grande image.pict" />
</a>

onclick.html :

<html>
<img src="">
<script type="text/javascript">
document.images[0].src='dossier_images/'+
self.location.toString().split('?')[1];

</script>
</html>


donc, si je comprend bien il faut, a minima, un fichier "onclick.html"
vide d'image mais qui prend l'image par l'url, laquelle est fabriquée
par js.




--
Père Noël

Avatar
ASM

donc, si je comprend bien il faut, a minima, un fichier "onclick.html"
vide d'image mais qui prend l'image par l'url, laquelle est fabriquée
par js.


c'est une solution (qui m'est la + facile)

piouz dour :

function pop(quoi) {
var i = document.createElement('img');
i.src = 'dossier_images'+quoi.getElementsByTagName('img')[0].src);
var b = document.body;
while(b.firstchild) { b.removeChild(b.firstChild); }
b.appendChild(i);
}

<a href="javascript:pop(this)"><img src="1.jpg"></a>


Mais ... que va donner le bouton 'back' du navigateur ?

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

Avatar
pere.noel
ASM wrote:


piouz dour :


ah d'accord, j'adopte ))

=> tout retirer du body et y mettre ce qu'on veut !

il fallait y penser !
--
Père Noël

Avatar
ASM
ASM wrote:

piouz dour :


ah d'accord, j'adopte ))

=> tout retirer du body et y mettre ce qu'on veut !

il fallait y penser !


correctif :

function pop(quoi) {
var i = document.createElement('img');
i.src = 'dossier_gdes_images/'+quoi.getElementsByTagName('img')[0].src;
var b = document.body;
while(b.firstChild) { b.removeChild(b.firstChild); }
b.appendChild(i);
var r = document.createElement('A');
r.href = 'javascript:self.location=self.location';
r.innerHTML = '[ retour ]';
b.appendChild(r);
}

<a href="#" onclick="pop(this);return false;"><img src="1.gif"></a>

ne fonctionne pas chez moi avec :

<a href="javascript:pop(this)"><img src="1.gif"></a>




Variante dè piouz en piouz dour :

function pop(quoi) {
var i = document.createElement('img');
i.src = 'dossier_gdes_images/'+quoi.getElementsByTagName('img')[0].src;
var b = document.body;
memory = new Array();
var j = 0;
while(b.firstChild) { memory[j] = b.removeChild(b.firstChild); j++ }
b.appendChild(i);
var r = document.createElement('A');
r.href = 'javascript:retour()';
r.innerHTML = '[ retour ]';
b.appendChild(r);
}
function retour() {
var b = document.body;
while(b.firstChild) { b.removeChild(b.firstChild); }
for(x in memory)
b.appendChild(memory[x]);
}

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


Avatar
pere.noel
ASM wrote:

Variante dè piouz en piouz dour :

function pop(quoi) {
var i = document.createElement('img');
i.src = 'dossier_gdes_images/'+quoi.getElementsByTagName('img')[0].src;
var b = document.body;
memory = new Array();
var j = 0;
while(b.firstChild) { memory[j] = b.removeChild(b.firstChild); j++ }
b.appendChild(i);
var r = document.createElement('A');
r.href = 'javascript:retour()';
r.innerHTML = '[ retour ]';
b.appendChild(r);
}
function retour() {
var b = document.body;
while(b.firstChild) { b.removeChild(b.firstChild); }
for(x in memory)
b.appendChild(memory[x]);
}


ah oui, vu, là, restant sur "la même page" tu mémorises tout le
"fragment xml" précédent et le restitue par la suite (fonction
retour()).

c + zoli => pas besoin d'une page spécifique pour recevoir la "grande
image"...

merci bien !
--
Père Noël

Avatar
pere.noel
ASM wrote:

ne fonctionne pas chez moi avec :

<a href="javascript:pop(this)"><img src="1.gif"></a>


chez moi non +, dans ce cas, d'après ff, this renvoie un window object
auquel on ne peut appliquer getElementsByTagName...


à part ça ta méthode marche super bien.
--
Père Noël