JavaScript imagemap代码没有';行不通

JavaScript imagemap代码没有';行不通,javascript,imagemap,Javascript,Imagemap,这个代码有什么问题?为什么我的imagemap不工作 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.displ

这个代码有什么问题?为什么我的imagemap不工作

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;
   }
更新:

我像这样重新构建了代码,但它仍然不起作用:

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

您已经创建了元素实例“mymap”,但没有像为“img”(appendChild)所做的那样将其添加(而不是追加)到文档中


document.createElement(名称)创建元素的实例,但不将其附加到文档中。

您已经创建了元素实例“mymap”,但没有将其添加(而不是附加)到文档中,就像您为“img”(appendChild)所做的那样

document.createElement(名称)创建元素的实例,但不将其附加到文档中。

此外:

您可能需要为
mymap
提供一个
id
的“testmap”

以及:


您可能需要给
mymap
一个
id
的“testmap”

这可能是因为您做事的顺序不好

我认为你应该:

  • 创建img元素(+设置其属性)
  • 创建贴图元素(+设置其属性)
  • 创建面积元素(+…)
  • 将区域添加到地图
  • 将映射附加到文档
  • 将图像附加到文档

  • 可能是你做事的顺序不好

    我认为你应该:

  • 创建img元素(+设置其属性)
  • 创建贴图元素(+设置其属性)
  • 创建面积元素(+…)
  • 将区域添加到地图
  • 将映射附加到文档
  • 将图像附加到文档
  • 以下是解决方案:

    你应该使用

    setAttribute(“usemap”,“testmap”)

    而不是:

    img.usemap=“#testmap”

    以下是解决方案:

    你应该使用

    setAttribute(“usemap”,“testmap”)

    而不是:


    img.usemap=“#testmap”

    请详细说明问题(是否存在任何错误、什么不起作用等)图像映射未在图像上创建。不能点击它!请详细说明问题(是否存在任何错误、什么不起作用等)图像映射未在图像上创建。不能点击它!我现在已经做到了。。。但没有区别。我的图像上仍然没有图像映射?还有什么不对的吗?我现在已经这么做了。。。但没有区别。我的图像上仍然没有图像映射?还有什么不对劲吗?刚刚发现。。。它也可能是img.useMap->,但请注意情况。问题是,html不区分大小写,但JS是。所以在html中可以是usemap、usemap、usemap、usemap等,而在JS中必须是usemap。幸运的是,setAttribute设置了html属性。所以这个案子(再次)并不重要。只是发现。。。它也可能是img.useMap->,但请注意情况。问题是,html不区分大小写,但JS是。所以在html中可以是usemap、usemap、usemap、usemap等,而在JS中必须是usemap。幸运的是,setAttribute设置了html属性。因此,这个案例(再次)并不重要。
    img.usemap='#testmap';
    ...
    mymap.name = 'testmap';