2009-10-08 5 views
0

Quel est le problème avec ce code? Pourquoi mon imagemap ne fonctionne-t-il pas?Le code de l'imagemap JavaScript ne fonctionne pas

function createimg() 
{ 
     var img = new Image(); 
     img.src='link/to/image'; 
     img.alt='Next image'; img.id = 'span1'; img.style.zIndex = 10; 
     img.style.position = 'absolute'; 
     img.style.display='block'; 
     img.style.top = '130px'; 
     img.style.padding='10px'; 
     img.style.left='440px'; 
     img.usemap='#testmap'; 
     img.className ='dynamicSpan'; 
     document.body.appendChild(img); 

     var mymap = document.createElement('map'); 
     mymap.name = 'testmap'; 
     document.body.appendChild(mymap); 

     var areatag = document.createElement('area'); 
     areatag.shape = 'rect'; 
     areatag.coords = '900,200,1100,1000' ; 
     areatag.href = 'http://www.google.com'; 
     mymap.appendChild(areatag); 
     document.body.appendChild(areatag); 

     return img; 
    } 

MISE À JOUR:

Je reconstruit mon code comme celui-ci, mais il ne fonctionne toujours pas:

function createimg() 
{ 
     var img = new Image(); 
     img.src='link/to/image'; 
     img.alt='Next image'; 
     img.id = 'span1'; 
     img.style.zIndex = 10; 
     img.style.position = 'absolute'; 
     img.style.display='block'; 
     img.style.top = '130px'; 
     img.style.padding='10px'; 
     img.style.left='440px'; 
     img.usemap='#testmap'; 
     img.className ='dynamicSpan'; 


     var mymap = document.createElement('map'); 
     mymap.name = 'testmap'; 
     mymap.id = 'testmap'; 


     var areatag = document.createElement('area'); 
     areatag.shape = 'rect'; 
     areatag.coords = '0,0,500,500' ; 
     areatag.href = 'http://www.google.com'; 
     areatag.target = '_blank'; 


     //append area to map 
     mymap.appendChild(areatag); 
     // append map to document 
     document.body.appendChild(mymap); 
     //append image to document 
     document.body.appendChild(img); 

     return img; 
    } 
+0

s'il vous plaît élaborer sur le problème (y at-il des erreurs, ce qui ne fonctionne pas, etc) –

+0

Le imagemap n'est pas créé sur l'image. Impossible de cliquer dessus! –

Répondre

1

est ici la solution:

vous devez utiliser

img.setAttribute ("usemap", '#testmap')

au lieu de:

img.usemap = "#testmap"

+0

Merci beaucoup pour le réparer! Ça fonctionne maintenant!! :) :) :) –

+2

vient d'être découvert ... il aurait aussi pu être img.useMap -> mais notez le cas. la chose est, html n'est pas sensible à la casse, mais JS est. Donc en HTML, il peut être usemap, USEMAP, useMap, UsEmAp, etc, dans JS, il doit être useMap. Heureusement, setAttribute définit l'attribut html. donc là le cas (encore) n'est pas important. –

1

Vous avez créé élément instance "mymap", mais n'a pas ajouté (non ajouté) au document, comme vous l'avez fait pour "img" (appendChild). Document.createElement (nom) crée une instance d'élément, mais ne l'ajoute pas au document.

+0

Je l'ai fait maintenant ... mais pas de différence. Toujours pas de plan imagemap sur mon image? Est-ce que quelque chose d'autre pourrait être faux? –

0

En plus de Viktor's answer:

img.usemap='#testmap'; 
... 
mymap.name = 'testmap'; 

Vous aurez probablement besoin de donner un mymapid de « testmap »

1

il se peut que l'ordre dans lequel vous faites les choses n'est pas bon.

je pense que vous devez:

  1. créer l'élément img (+ set ses attrs)
  2. créer élément de carte (+ set ses attrs)
  3. créer des éléments de surface (+ ...)
  4. zone append à la carte
  5. carte append to document
  6. image append to document
Questions connexes