JS跨浏览器兼容性问题
JS Cross Browser Compatibility Issue
这段代码在Chrome中运行良好,但在Firefox或IE中则不然。
<script>
$(document).ready(function(){
var currentOne=$("#instructions");
currentOne.addClass("visibleLabel");
$('map area').mousemove(function(e) {
$(currentOne).removeClass("visibleLabel");
currentOne = '#' + $(this).data('label');
$(currentOne).addClass("visibleLabel");
});
});
</script>
<img src="http://greenparty.org.uk/assets/images/site_graphics/national/greenmap.png"
usemap="greenuk" id="theGreenMap">
<map name="greenuk">
<area shape="poly" id="region-southeast"
data-label="southeast" coords="256,485,262,486,285,542,301,531,344,536,349,547,298,577,263,574,234,587,205,577,202,562,216,513,214,499,247,498"
alt="southEast" href="south-east" />
<!-- etc. -->
</map>
以下是JS Fiddle:http://jsfiddle.net/ve9hywdq/1/如果你在Firefox中尝试,你无法点击你想要的地图部分,但在Chrome中你可以。
您的问题与脚本无关(您可以完全删除它,问题仍然存在),而是与HTML有关。
usemap
属性必须具有前导#
。根据W3C关于<map>
:的规范
如果指定了
usemap
属性,则该属性必须是对map
元素的有效哈希名称引用。
哈希名称引用是
一个字符串,由一个"#"(U+0023)字符和一个与元素的名称属性值完全匹配的字符串组成
您的usemap
值没有一个前导#
,Chrome接受它(不符合规范的要求),Firefox没有。在usemap
属性中添加前导#
可以修复代码。
相关文章:
- jQuery - 与 Firefox 的兼容性问题
- DOM 操作、向后兼容性和跨浏览器问题
- IE-9面临浏览器兼容性问题
- Ipad的safari浏览器中window.showModalDialog()的兼容性问题
- Cordova/phonegap 插件兼容性问题 - org.chromium.socket / org.chromiu
- 浏览器兼容性问题
- 浏览器兼容性问题 - 无法在 IE 上运行
- JavaScript 浏览器兼容性问题
- IE9 兼容性视图 Javascript 问题
- 测试 IE8 兼容性问题
- Ionic Framework 中的 Cordova 插件媒体兼容性问题
- 浏览器之间的javascript鼠标事件兼容性问题
- 运行javascript的IE 8中的兼容性问题
- JS跨浏览器兼容性问题
- Safari与Chrome兼容性问题
- shopify和instafeed.js的兼容性问题
- IE的选项卡兼容性问题
- IE7与导航下拉菜单(3级)CSS/Javascript的兼容性问题
- 浏览器兼容性问题,而不是明显的布局/CSS问题
- 解决可能出现的Kendo UI和Wijmo SpreadJS兼容性问题