Rendre image cliquable DHTML dans script fournit

[Résolu]
Signaler
Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005
-
Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005
-
Bonjour à tous,

Pour une de mes pages d'un site en php, j'ai intégré un script dhtml
pris ici : http://www.dhteumeuleu.com/ (cliquer sur "les scripts"
dans menu du bas puis rechercher le script s'appelant Hector.html).


Après avoir modifié quelques paramètres dont l'image ;-) il ne me reste
plus qu'à rendre cliquable cette image pour qu'on puisse, onclick,
télécharger un fichier.


Or, ni la balise a href ni url dans le style d'image ne sont
actifs.....j'ai donc besoin d'aide juste pour rendre cliquable cette
image.



Merci d'avance à ceux qui vont regarder mon problème.

ps : code source

<HEAD>
<title>Hector - Interactive DHTML art-demos</title>
<meta name="Author" content="Gerard Ferrandez at http://www.dhteumeuleu.com">
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
body {cursor:crosshair;margin:0; padding:0; position:absolute; overflow:hidden; background:#000; left:0; top:0; width:100%; height:100%;zIndex:-2;}
img {position:absolute; left:-10000;}
span {position:absolute; overflow:hidden;left:-1000;font-size:1px;}
</style>

<script type="text/javascript"><!--
// ======================================================
// Script by Gerard Ferrandez - Ge-1-doot - Dec 2001
// news://news.leibowitz.org/nzn.fr.html
// http://www.dhteumeuleu.com// window.onerror new Function("return true");
document.onselectstart = new Function("return false");
screen.bufferDepth = 16;

var xm = 0;
var ym = 0;

function CObj(N,parent){
this.S=(N+1)*P;
var o = document.createElement("span");
o.style.width = this.S;
o.style.height = this.S;
o.style.zIndex = 10000-N;
document.body.appendChild(o);
var i = document.createElement("img");
i.src = MP.src;
i.style.left = -(MP.width/2-this.S/2);
i.style.top = -(MP.height/2-this.S/2);
o.appendChild(i);
this.S = this.S * 0.5;
this.spa = o.style;
this.ddx = 0;
this.ddy = 0;
this.PX = xm;
this.PY = ym;
this.x = 0;
this.y = 0;
this.parent = parent;
this.anim = function (){
with (this) {
x0 = (parent)?parent.x:xm+Math.random()*6-3;
y0 = (parent)?parent.y:ym+Math.random()*6-3;
ddx = (x0-PX) * 0.5;
ddy = (y0-PY) * 0.5;
x = PX+=ddx;
y = PY+=ddy;
spa.left = x - S;
spa.top = y - S;
if(O)O.anim();
}
}
this.O = null;
if(N<NBi)this.O = new CObj(N+1,this);
}

function run(){
O.anim();
setTimeout("run();", 16);
}

onload = function() {
MP = document.getElementById("hector");
xm = document.body.offsetWidth/2;
ym = document.body.offsetHeight/2;
document.onmousemove = function(e){
if (window.event) e = window.event;
xm = (e.x || e.clientX);
ym = (e.y || e.clientY);
}
N = 0;
NBi = 60;
P=Math.max(MP.width,MP.height)/NBi;
O = new CObj(0);
run();
}
//-->
</script>
</head>

<body>

<IMG id="hector" src="ZB-otus.jpg">

7 réponses

Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005

testé sous IE et firefox :



i.onclick
=
new
Function("window.open('repertoire/fichier.zip','_blank');")
fonctionne très bien avec ou sans '_blank'

toutefois sous firefox une page blanche se créée en plus de la check box de téléchargement

sous IE on voit en fond de tache qu'une fenêtre se créé mais se referme aussitôt.



mêmes remarques pour cette solution :

onclick=
"
window.open('repertoire/fichier.zip','_blank');">

à la seule différence prete que le temps de chargement de la page est plus longue.





Donc je préfère la première solution.

Je considère que tu as répondu à ma demande de base et je t'en remercie vivement.



Si tu as une solution pour éviter la page créée sous firefox ce serait le top du top.



Encore merci.
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

Dans la fonction CObj, après cette ligne : var i
= document
.createElement
("img");

Ajoute ceci :



i
.onclick
=
new
Function(" //ici tu fait l'action au clique sur l'image ")

A+, Ghislain
Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005

Bonjour Ghislain,

Tout d'abord merci beaucoup pour ta précieuse aide.



J'ai donc inséré ta ligne et testé...voilà ce qu'il en ressort :

testé sous IE et firefox j'observe les mêmes choses à savoir :



quand j'insère le chemin complet du fichier à télécharger, l'image n'apparait même plus...

i.
onclick
=
new
Function("http://www.domaine.com/repertoire/fichier.zip")


quand j'insère le chemin relatif, rien ne se passe , le script fonctionne comme avant...

i.
onclick
=
new
Function("repertoire/fichier.zip")



Voilà...si tu as une idée...
Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005

tiens une idée comme ça, je ne sais pas si c'est plus facile ou si ça
complique ma demande mais au lieu de rendre cliquable l'objet, pour
quoi ne pas rendre cliquable l'ensemble de la page ?...vu qu'il n'y à
qu'une image dedans et que le but est de faire télécharger un fichier
derriere...



enfin je dis ça je ne dis rien car je suis analphabète devant ce code :-(
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

C'est certain que l'on pourait le faire directement sur un évènement du body.

Essai comme ceci :

i.onclick
=
new
Function("window.open('repertoire/fichier.zip','_blank');")

ou comme le propose bernie69

A+, Ghislain
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

J'ai essayer ewn local sur EI et FIREFOX et ça fonctionne comme ceci :



A+
Messages postés
5
Date d'inscription
jeudi 17 septembre 2009
Statut
Membre
Dernière intervention
2 avril 2005

Merci 1000 fois

Je teste ça demain car là crevé...



+++++++