HTML DOM Area target 属性(一文讲透)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

前言

在网页开发中,图像映射(Image Map)是一种通过自定义形状为图片不同区域添加超链接的技术。而 HTML DOM Area target 属性 则是控制这些链接跳转行为的核心工具。无论是为电商商品图添加商品详情页链接,还是为导航图标设计弹窗效果,掌握这一属性都能显著提升用户体验。本文将从基础概念、使用场景到高级技巧,系统讲解 target 属性的运作原理与最佳实践。


一、理解图像映射与 Area 标签

1.1 图像映射的基本构成

图像映射由三个关键元素组成:

  • <img> 标签:定义需要添加交互的图片
  • <map> 标签:为图片创建命名空间
  • <area> 标签:定义可点击的形状区域

形象比喻
可以将图像映射想象为“图片上的拼图游戏”,每个 <area> 就是其中一块可点击的拼图碎片,而 target 属性则决定了点击后“拼图碎片”会将用户带到哪里。

<img src="map.png" alt="交互地图" usemap="#worldMap">
<map name="worldMap">
  <area shape="rect" coords="10,10,50,50" href="asia.html" target="_blank">
  <area shape="circle" coords="200,200,30" href="europe.html" target="_self">
</map>

1.2 Area 标签的核心属性

除了 target<area> 标签的关键属性包括:
| 属性 | 作用 | 示例值 | |----------|--------------------------|-----------------| | shape | 定义区域形状 | rect, circle, poly | | coords | 设置形状坐标 | "10,10,50,50" | | href | 链接目标URL | "https://example.com" | | alt | 屏幕阅读器描述文字 | "亚洲区域" |


二、target 属性的5种标准值解析

target 属性通过指定窗口名称,控制链接的打开方式。其标准取值包括:

2.1 _blank:新开窗口/标签页

这是最常用的值,适合需要保持当前页面可视的场景,例如:

  • 电商商品图跳转到商品详情页
  • 导航栏的“关于我们”页面
<area href="product.html" target="_blank">

技术细节
该值会强制浏览器创建新标签页,即使用户已关闭标签页也会重新打开。但需注意,部分浏览器会拦截自动弹窗。


2.2 _self:当前窗口加载

默认行为,链接在当前窗口或框架中打开。适用于需要保持页面上下文的场景,例如:

  • 图片区域切换不同内容区域
  • 表单提交后的结果页面
<area href="login.html" target="_self">

对比示例
当用户点击 _self 链接时,当前页面会被完全替换;而 _blank 则保留原页面继续浏览。


2.3 _parent:父级框架加载

在框架(Frameset)结构中使用,指定链接在父级框架中打开。现代网页较少使用框架,但在旧系统维护中仍可能遇到:

<area href="settings.html" target="_parent">

使用场景
当页面包含 <frameset> 定义的多框架布局时,_parent 可控制内容在父级框架中显示。


2.4 _top:顶层窗口加载

强制链接在浏览器最外层窗口打开,常用于解除嵌套框架的限制:

<area href="exit.html" target="_top">

技术原理
该值会移除所有框架层级,确保链接直接在顶层窗口渲染,适合需要突破嵌套框架的场景。


2.5 自定义名称:命名窗口/标签页

通过指定任意名称(如 target="myWindow"),可控制多个链接共用同一窗口:

<area href="step1.html" target="wizard">
<area href="step2.html" target="wizard">

实际效果
点击第一个链接打开新标签页,后续链接会直接替换该标签页内容,实现类似向导式导航的体验。


三、动态修改 target 属性的高级技巧

3.1 通过 JavaScript 动态设置

利用 DOM 操作可以实现更灵活的控制,例如根据用户行为动态调整目标窗口:

// 获取特定区域
const asiaArea = document.querySelector('area[href="asia.html"]');
// 根据条件动态设置 target
if (isMobileDevice()) {
  asiaArea.target = "_self"; // 移动端不弹窗
} else {
  asiaArea.target = "_blank"; // PC端新开标签页
}

3.2 结合事件监听实现条件跳转

通过监听点击事件,可在跳转前执行自定义逻辑:

document.querySelectorAll('area').forEach(area => {
  area.addEventListener('click', function(e) {
    if (!confirm("确定要跳转吗?")) {
      e.preventDefault(); // 阻止默认跳转
    }
  });
});

四、实际应用案例分析

4.1 电商商品图案例

在商品详情页,使用图像映射实现“点击不同部位跳转不同链接”:

<img src="product.jpg" usemap="#productMap" alt="商品全景图">
<map name="productMap">
  <area shape="circle" coords="150,150,50" 
        href="specs.html" target="_blank" 
        alt="查看规格参数">
  <area shape="rect" coords="50,300,250,350" 
        href="reviews.html" target="_self" 
        alt="阅读用户评价">
</map>

设计逻辑

  • 规格参数使用 _blank 弹窗,避免遮挡商品图
  • 评价区域使用 _self 保持上下文连贯

4.2 导航栏图标案例

在响应式导航中,为图标添加 target 控制:

<img src="nav-icons.png" usemap="#navMap" alt="导航图标">
<map name="navMap">
  <area shape="poly" coords="10,10,60,10,60,60,10,60" 
        href="contact.html" target="_blank" 
        alt="联系客服">
  <area shape="rect" coords="80,10,130,60" 
        href="search.html" target="_self" 
        alt="全站搜索">
</map>

五、常见问题与最佳实践

5.1 为什么有时 target 不生效?

  • 检查是否遗漏 href 属性,target 需与 href 配合使用
  • 确认浏览器未拦截弹窗(_blank 的常见问题)
  • 在 HTTPS 页面中避免混合内容错误

5.2 如何实现无刷新跳转?

结合 AJAX 和 target="_self" 可实现局部更新:

// 拦截点击事件
document.querySelector('area').addEventListener('click', function(e) {
  e.preventDefault();
  fetch(this.href)
    .then(response => response.text())
    .then(data => {
      document.getElementById('content').innerHTML = data;
    });
});

六、SEO 与可访问性注意事项

6.1 对搜索引擎的影响

  • 使用 target="_blank" 可能降低页面停留时间指标,需根据业务目标权衡
  • 核心内容链接建议使用 _self 保持用户在站内浏览

6.2 屏幕阅读器支持

  • 为每个 <area> 添加 alt 属性描述功能
  • 避免过度使用 _blank,以免非视觉用户困惑

结论

掌握 HTML DOM Area target 属性 是构建交互式网页的重要能力。通过合理选择 _blank_self 等值,开发者能精准控制页面跳转行为,提升用户体验。在实际开发中,结合 JavaScript 动态控制和 SEO 优化策略,可让图像映射技术发挥最大价值。建议读者通过本文提供的案例代码动手实践,并尝试在实际项目中应用这些技巧。

延伸学习

  • 深入学习 <map> 标签的进阶用法
  • 探索 shape 属性的多边形坐标计算方法
  • 研究服务端动态生成图像映射的技术方案

通过持续练习和项目实践,您将能熟练运用 HTML DOM Area target 属性,为用户提供更直观、高效的交互体验。

最新发布