Код изображения JavaScript не работает

0 Tony The Lion [2009-10-08 15:25:00]

Что не так с этим кодом? Почему моя карта не работает?

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;
   }

UPDATE:

Я восстановил свой код таким образом, но он все еще не работает:

 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;
   }

javascript imagemap


4 ответа


1 Решение Ovaj Onaj [2009-10-08 17:20:00]

здесь решение:

вы должны использовать

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

вместо:

img.usemap = "#testmap"


1 Viktor Jevdokimov [2009-10-08 15:29:00]

Вы создали экземпляр экземпляра "mymap", но не добавили (не добавляли) его в документ, как вы сделали это для "img" (appendChild).

document.createElement(name) создает экземпляр элемента, но не добавляет его в документ.


1 Ovaj Onaj [2009-10-08 16:00:00]

может быть, что порядок, в котором вы делаете что-то нехорошо.

Думаю, вам следует:

  • создать элемент img (+ установить его attrs)
  • создать элемент карты (+ установить его attrs)
  • создать элемент области (+...)
  • добавить область для отображения
  • добавить карту в документ
  • добавить изображение в документ

0 geowa4 [2009-10-08 15:34:00]

В дополнение к ответ Виктора:

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

Вам, вероятно, нужно будет указать mymap a id в "testmap"