如何解决JavaScript图像映射不起作用生成的HTML起作用
| 我使用JavaScript添加图像地图。但是链接不起作用。但是,如果我在IE开发人员工具(“查看DOM页面”)中查看生成的HTML,然后将该HTML复制回该页面,则图像映射确实起作用。我的脚本位于页面末尾的body标签内。我无权更改身体标签。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,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);
生成的HTML可以正常工作:
<MAP id=\"mapitem21\" class=\"chart_map\" lid=\"rsvptt0\"><AREA class=\"dl chart_area\" title=\"Fiscal Year = 2010\" href=\"#\" shape=\"RECT\" coords=\"0,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,而不是#
,不是吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。