ie8/ie9 直接忽略 rel、ping、referrer 属性(dom 中不存在),target 在部分模式下不稳定;href 和 alt 必须非空且同时存在,否则 area 静默失效;coords 禁止空格,poly 坐标须成对,circle 半径不能为零或负;nohref 完全无效,不可用于禁用热区。

area 标签哪些属性在 IE8/IE9 里直接被忽略
IE8 和 IE9 对 area 的支持停留在 HTML4.01 水平,rel、ping、referrer 这类 HTML5 新增属性一律不解析,连 DOM 中都查不到——不是值为空,是压根没挂载。尤其 rel 属性,虽然规范说“HTML5 新增”,但 IE9 渲染引擎 Trident 6.0 完全跳过它,document.querySelector('area').rel 返回 undefined。
以下属性在 IE8/9 中会被静默丢弃:
-
rel(即使写成rel="nofollow",也不影响链接行为或 SEO) -
ping(无法触发 ping 请求) -
referrer(no-referrer等值无效,仍按默认策略发送 referrer) -
target在部分 IE8 文档模式下不稳定(仅当usemap关联的img外层有form或iframe时才偶发生效)
href 和 alt 缺一不可:旧浏览器报错但不提示
IE8 会把缺失 href 的 area 当作无效热区,完全不注册点击区域;而缺失 alt 时,整个 map 可能被忽略——不是警告,是静默失效。Firefox 3.6 也有类似行为:没有 alt,area 不出现在可访问性树中,屏幕阅读器跳过,键盘 Tab 也无法聚焦。
必须同时满足:
-
href存在且非空字符串(href="#"可接受,但需配 JS 阻止跳转) -
alt是非空字符串(不能是alt=""或只有空格) -
alt值应描述功能而非外观,例如alt="进入上海门店预约页",不是alt="红色按钮区域"
coords 和 shape 的兼容底线:IE6 都认,但格式不能错
shape 的四个取值 rect、circle、poly、default 在 IE6+ 全支持,但 coords 的格式容错极低。IE8 不接受坐标间多余空格或换行,coords="10,20, 30,40"(中间有空格)会被截断为 "10,20,",导致矩形区域错乱。
安全写法只有一条:
- 所有坐标用英文逗号分隔,**禁止空格**:
coords="10,20,30,40"✅,coords="10, 20, 30, 40"❌ -
poly坐标点必须成对出现,奇数个数值会导致 IE8 完全忽略该area -
circle的半径不能为 0 或负数,IE8 会当作无效并跳过渲染
nohref 是最大陷阱:写了等于没写,还误导人
nohref 在 HTML5 中已标记为 obsolete,但更关键的是:IE8/9 虽然认识这个属性名,却**不实现禁用逻辑**。你写 <area nohref coords="...">,IE8 依然响应点击、依然触发 onclick、依然尝试导航到 #。
真正让旧浏览器“禁用”热区,只有两种可靠方式:
- 删掉
href,然后用 JS 绑定onclick并调用event.preventDefault()(注意 IE8 用window.event.returnValue = false) - 保留
href="#",但加onclick="return false;"(IE8 支持内联 handler) - 绝对不要依赖
nohref做功能控制——它在任何浏览器里都不起作用,只是历史包袱
最常被忽略的一点:即使你用 JS 移除了 href 属性,IE8 的 area 元素 DOM 仍可能缓存旧值,得用 removeAttribute('href') + 强制重绘(如 outerHTML = outerHTML)才能彻底清空行为。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











