简体   繁体   English

JavaScript图像映射不起作用(生成的HTML起作用)

[英]JavaScript Image map not working (Generated HTML works)

I used JavaScript to add image maps. 我使用JavaScript添加图像地图。 But the links don't work. 但是链接不起作用。 However, if I view the generated HTML in IE Developer Tools (View-DOM Page), then copy the that HTML back into the page, the image map does work. 但是,如果我在IE开发人员工具(“ View-DOM页面”)中查看生成的HTML,然后将该HTML复制回页面中,则图像映射确实起作用。 I have this script at the end of the page within the body tag. 我的脚本位于页面结尾的body标签内。 I don't have access to change the body tags. 我无权更改身体标签。

var newDiv = document.getElementById('Graph2');
var br = document.createElement("br");

//If area is from the Legend
if (area.type == "chartElement") { 
var ctx = area.ctx;

var myMap  = document.createElement("map");
myMap.id = ("mapitem"+String(j));
myMap.className = "chart_map"; 
myMap.lid="rsvptt0";

var myArea = document.createElement("area");
myArea.className = "dl chart_area"; 
myArea.lid="legendLabel";
myArea.shape="RECT";
myArea.coords="0, 0, 20, 20";
myArea.title=img.children[j].title;
myArea.ctx=img.children[j].ctx;
myArea.href="#";
myMap.appendChild(myArea);

newDiv.appendChild(myMap);

var myImage  = document.createElement("img");
myImage.name = "imageitem"+String(j);

myImage.style.color ="#000000";
myImage.style.backgroundColor ="#E3D9B3";
myImage.style.border ="1pt solid #000000";
myImage.style.paddingLeft ="0px";
myImage.style.paddingTop ="0px";
myImage.style.paddingRight ="0px";
myImage.style.paddingBottom ="0px";
myImage.style.backgroundColor ="transparent";

myImage.lid="Combination Chart11";
myImage.src="../samples/images/green.jpg";
myImage.usemap="#mapitem"+String(j);
myImage.border="0" ;
newDiv.appendChild(myImage);
newDiv.appendChild(br);

Generated HTML works fine: 生成的HTML可以正常工作:

<MAP id="mapitem21" class="chart_map" lid="rsvptt0"><AREA class="dl chart_area" title="Fiscal Year = 2010" href="#" shape="RECT" coords="0,0,20,20" ctx="10::1::3" lid="legendLabel" />
</MAP>


<IMG style="BORDER-BOTTOM: #000000 1pt solid; BORDER-LEFT: #000000 1pt solid; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: #000000; BORDER-TOP: #000000 1pt solid; BORDER-RIGHT: #000000 1pt solid; PADDING-TOP: 0px" border="0" src="http://{ipremoved}/cognos8/samples/images/green.jpg" width="14" height="14" lid="Combination Chart11" usemap="#mapitem21" />
<BR />

您正在设置myArea.href="#" ,这应该只强制重新加载页面-只需在其中放置一个URL而不是# ,不?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM