SELFHTML

Forum SELFHTML: Archives:
probléme avec un script

Page d'information: vue d'ensemble
vers le bas 

(JAVASCRIPT) probléme avec un script

Le message suivant est de: pascal, Adresse électronique pascal.sireygeol@free.fr, 07. 09. 2003, 16:26

Bonjour,

voila j'ai une carte sur laquelle je voudrais pouvoir zoomer. Je pensais faire çà a l'aider d'un script. Je suis donc en train de m'y intéresser. Le but fixé est de declencher le zoom en appuyant sur Zoom in et Zoom out .Avec ce script là le zoom ne fonctionne pas car à chaque fois j'ai une erreur sur la ligne marquée "erreur"
me disant que "CDAriege"(a savoir ma carte) est indéfinie(du moins c'est le message que me sort IE lorsque j'essai de zoomer) et je ne voie pas du tout pourquoi. Quelqu'un pourrait-il m'aider ?
merci par avance

<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
var zoomfactor=0.05 //Enter factor (0.05=5%)

function zoomhelper(){
if (parseInt(whatcache.style.width)>10&&parseInt(whatcache.style.height)>10){
whatcache.style.width=parseInt(whatcache.style.width)+parseInt(whatcache.style.width)*zoomfactor*prefix
whatcache.style.height=parseInt(whatcache.style.height)+parseInt(whatcache.style.height)*zoomfactor*prefix
}
}

function zoom(originalW, originalH, what, state){
if (!document.all&&!document.getElementById)
return
whatcache=eval("document.images."+what)                <----erreur
prefix=(state=="in")? 1 : -1
if (whatcache.style.width==""||state=="restore"){
whatcache.style.width=originalW
whatcache.style.height=originalH
if (state=="restore")
return
}
else{
zoomhelper()
}
beginzoom=setInterval("zoomhelper()",100)
}

function clearzoom(){
if (window.beginzoom)
clearInterval(beginzoom)
}

</script>
</head>

<body>
<a href="#" onmouseover="zoom(402,444,'images/CDAriege.gif','in')" onmouseout="clearzoom()">Zoom In</a> | <a href="#" onmouseover="zoom(402,444,'images/CDAriege.gif','restore')">Normal</a> | <a href="#" onmouseover="zoom(120,60,'images/CDAriege.gif','out')" onmouseout="clearzoom()">Zoom Out</a>
<div style="position:relative; width:369px; height:641px; left: 65px; top: 46px;">
  <div style="position:absolute; "> <img src="images/CDAriege.gif" name="Ariege" width="402" height="444">
  </div>
</div>


 
vers le hautvers le bas 

(JAVASCRIPT) probléme avec un script

Le message suivant est de: Patrick Andrieu, Adresse électronique nospam@nospam.no, 08. 09. 2003, 10:40
http://www.selfhtml.com.fr/equipe/patrick.htm

Salut Pascal!



»» Avec ce script là le zoom ne fonctionne pas

Cela n'a pas l'air d'être un script que tu as écrit toi-même... :-)

»» car à chaque fois j'ai une erreur sur la ligne marquée "erreur"
»» me disant que "CDAriege"(a savoir ma carte) est indéfinie(du moins c'est le message que me sort IE lorsque j'essai de zoomer) et je ne voie pas du tout pourquoi.

Normal, si on se sert de scripts tout faits, faut-il aussi savoir les adapter ;-)

Mais ce qui dans mes commentaires ressemble à un reproche ne peut pas en être un, on a tous commencé par plus ou moins copier :-). Néanmoins vient le moment où il faut se lancer de manière plus approfondie dans la matière (ici: JavaScript), sinon on en reste à copier et à ne pas comprendre pourquoi les trucs ne fonctionnent pas.


»» whatcache=eval("document.images."+what)              //  <----erreur

Si tu ajoutes un commentaire à un script, toujours le masquer avec // ou avec /* commentaires...... */, si ceux-ci prennent plusieurs lignes.


Que nous dit ce qui est entre parenthèses: ("document.images."+what) ? Que le script recherche à cet endroit une instance précise de l'objet images, dont le nom (ici remplacé par what) est un des paramètres de ta fonction zoom:

function zoom(originalW, originalH, what, state)
                                    ^^^^

Celle-ci attend en effet 4 paramètres: la largeur, la hauteur, le nom (de l'instance de l'objet images) et le status (in ou out).

Et maintenant, regardons plus bas dans ton code HTML:

<div style="position:absolute;"><img src="images/CDAriege.gif" name="Ariege" width="402" height="444"></div>´

Le nom que tu as attrubué à l'élément img est "Ariege". Mais lorsque tu reprends tes paramètres, tu n'indiques pas comme nom "Ariege":

<a href="#" onmouseover="zoom(402,444,'images/CDAriege.gif','in')"
                                       ^^^^^^^^^^^^^^^^^^^^^

C'est donc de là que vient l'erreur! Remplace "'images/CDAriege.gif'" par "'Ariege'", car "Ariege" est le nom de cette instance de l'objet images que représente ta carte, plus précisément: le nom que tu as attribué à cet objet.

Code complet corrigé:


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
var zoomfactor=0.05 //Enter factor (0.05=5%)

function zoomhelper(){
if (parseInt(whatcache.style.width)>10&&parseInt(whatcache.style.height)>10){
whatcache.style.width=parseInt(whatcache.style.width)+parseInt(whatcache.style.width)*zoomfactor*prefix
whatcache.style.height=parseInt(whatcache.style.height)+parseInt(whatcache.style.height)*zoomfactor*prefix
}
}

function zoom(originalW, originalH, what, state){
if (!document.all&&!document.getElementById)
return
whatcache=eval("document.images."+what)   //  <---- il n'y a plus d'erreur!!!
prefix=(state=="in")? 1 : -1
if (whatcache.style.width==""||state=="restore"){
whatcache.style.width=originalW
whatcache.style.height=originalH
if (state=="restore")
return
}
else{
zoomhelper()
}
beginzoom=setInterval("zoomhelper()",100)
}

function clearzoom(){
if (window.beginzoom)
clearInterval(beginzoom)
}

</script>
</head>

<body>

<a href="#" onmouseover="zoom(402,444,'Ariege','in')" onmouseout="clearzoom()">Zoom In</a> | <a href="#" onmouseover="zoom(402,444,'Ariege','restore')">Normal</a> | <a href="#" onmouseover="zoom(120,60,'Ariege','out')" onmouseout="clearzoom()">Zoom Out</a>
<div style="position:relative; width:369px; height:641px; left: 65px; top: 46px;">
<div style="position:absolute;"><img src="CDAriege.gif" name="Ariege" width="402" height="444"></div>
</div>

</body>
</html>


Tu t'intéresseras au chapitre JavaScript/DOM de SELFHTML:
http://selfhtml.selfhtml.com.fr/javascript/index.htm

Patrick


 
vers le hautvers le bas 

(JAVASCRIPT) probléme avec un script

Le message suivant est de: pascal, Adresse électronique pascal.sireygeol@free.fr, 08. 09. 2003, 11:27

»» Salut Pascal!



»» »» Avec ce script là le zoom ne fonctionne pas

»» Cela n'a pas l'air d'être un script que tu as écrit toi-même... :-)

»» »» car à chaque fois j'ai une erreur sur la ligne marquée "erreur"
»» »» me disant que "CDAriege"(a savoir ma carte) est indéfinie(du moins c'est le message que me sort IE lorsque j'essai de zoomer) et je ne voie pas du tout pourquoi.

»» Normal, si on se sert de scripts tout faits, faut-il aussi savoir les adapter ;-)

»» Mais ce qui dans mes commentaires ressemble à un reproche ne peut pas en être un, on a tous commencé par plus ou moins copier :-). Néanmoins vient le moment où il faut se lancer de manière plus approfondie dans la matière (ici: JavaScript), sinon on en reste à copier et à ne pas comprendre pourquoi les trucs ne fonctionnent pas.


»» »» whatcache=eval("document.images."+what)              //  <----erreur

»» Si tu ajoutes un commentaire à un script, toujours le masquer avec // ou avec /* commentaires...... */, si ceux-ci prennent plusieurs lignes.


»» Que nous dit ce qui est entre parenthèses: ("document.images."+what) ? Que le script recherche à cet endroit une instance précise de l'objet images, dont le nom (ici remplacé par what) est un des paramètres de ta fonction zoom:

»» function zoom(originalW, originalH, what, state)
»»                                     ^^^^

»» Celle-ci attend en effet 4 paramètres: la largeur, la hauteur, le nom (de l'instance de l'objet images) et le status (in ou out).

»» Et maintenant, regardons plus bas dans ton code HTML:

»» <div style="position:absolute;"><img src="images/CDAriege.gif" name="Ariege" width="402" height="444"></div>´

»» Le nom que tu as attrubué à l'élément img est "Ariege". Mais lorsque tu reprends tes paramètres, tu n'indiques pas comme nom "Ariege":

»» <a href="#" onmouseover="zoom(402,444,'images/CDAriege.gif','in')"
»»                                        ^^^^^^^^^^^^^^^^^^^^^

»» C'est donc de là que vient l'erreur! Remplace "'images/CDAriege.gif'" par "'Ariege'", car "Ariege" est le nom de cette instance de l'objet images que représente ta carte, plus précisément: le nom que tu as attribué à cet objet.

»» Code complet corrigé:


»» <html>
»» <head>
»» <title>Untitled Document</title>
»» <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
»» <script language="JavaScript">
»» var zoomfactor=0.05 //Enter factor (0.05=5%)

»» function zoomhelper(){
»» if (parseInt(whatcache.style.width)>10&&parseInt(whatcache.style.height)>10){
»» whatcache.style.width=parseInt(whatcache.style.width)+parseInt(whatcache.style.width)*zoomfactor*prefix
»» whatcache.style.height=parseInt(whatcache.style.height)+parseInt(whatcache.style.height)*zoomfactor*prefix
»» }
»» }

»» function zoom(originalW, originalH, what, state){
»» if (!document.all&&!document.getElementById)
»» return
»» whatcache=eval("document.images."+what)   //  <---- il n'y a plus d'erreur!!!
»» prefix=(state=="in")? 1 : -1
»» if (whatcache.style.width==""||state=="restore"){
»» whatcache.style.width=originalW
»» whatcache.style.height=originalH
»» if (state=="restore")
»» return
»» }
»» else{
»» zoomhelper()
»» }
»» beginzoom=setInterval("zoomhelper()",100)
»» }

»» function clearzoom(){
»» if (window.beginzoom)
»» clearInterval(beginzoom)
»» }

»» </script>
»» </head>

»» <body>

»» <a href="#" onmouseover="zoom(402,444,'Ariege','in')" onmouseout="clearzoom()">Zoom In</a> | <a href="#" onmouseover="zoom(402,444,'Ariege','restore')">Normal</a> | <a href="#" onmouseover="zoom(120,60,'Ariege','out')" onmouseout="clearzoom()">Zoom Out</a>
»» <div style="position:relative; width:369px; height:641px; left: 65px; top: 46px;">
»» <div style="position:absolute;"><img src="CDAriege.gif" name="Ariege" width="402" height="444"></div>
»» </div>

»» </body>
»» </html>


»» Tu t'intéresseras au chapitre JavaScript/DOM de SELFHTML:
»» http://selfhtml.selfhtml.com.fr/javascript/index.htm

»» Patrick

effectivement ce n'est pas un script que j'ai écrit. En fait
ce qui m'interésse c'est surtout son fonctionnement. Je ne savais même pas qu'on pouvait faire çà avec du javascript. J'espére
pouvoir reprendre son fonctionnement, si tant est que je le comprenne bien et pour le moment ... ce n'est pas gagné.!:-(((
en tout cas merci pour l'info. !je teste tout çà !:-))


 
vers le haut

© 1998-2004 Adresse électronique selfhtml@fr.selfhtml.org