能,但必须确保 href 是有效 URL 且 target="_self" 显式声明;空 href 或仅 "#" 会令 target 被忽略,锚点链接需补全页面路径才生效。

area 的 href + target="_self" 能否强制当前页打开?
能,但必须确保 href 是有效 URL,且 target="_self" 显式声明——否则浏览器可能按用户代理默认行为处理(比如某些移动端 WebView 会默认在新标签页打开)。target 属性只在 href 存在时起作用,空 href 或仅 # 会让 target 完全被忽略。
为什么写了 target="_self" 还跳到新页面?
常见原因不是 target 失效,而是 href 值本身触发了浏览器策略:
-
href写成"#section1":纯锚点不构成导航动作,部分浏览器静默忽略target,或回退到历史栈顶部;应改用href="./current-page.html#section1" -
href是跨域 URL 且目标页设置了rel="noopener"或noopener窗口特性:这不会影响target,但可能让开发者误判为“没生效” - 页面被嵌在
<iframe></iframe>中,且父页设置了sandbox属性(如sandbox="allow-scripts"但没加allow-popups):此时target="_blank"会被拦截,但_self通常仍可用
coords 错位导致点击无响应,怎么排查?
热区“点了没反应”,90% 是坐标没对上。area 的 coords 基于图片原始尺寸(naturalWidth/naturalHeight),不是渲染后尺寸。如果用了 CSS 缩放、max-width: 100% 或响应式布局,坐标必然偏移:
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
- 用
document.querySelector('img').getBoundingClientRect()拿当前宽高,再和naturalWidth对比缩放比,手动换算coords - 避免用设计稿像素值直接写死
coords,尤其不要抄 Photoshop 标尺读数(它不反映 HTML 渲染上下文) - 调试时临时加
outline: 2px solid red到img,用开发者工具的“元素选择器”悬停看实际热区是否覆盖目标区域
想点 area 后刷新当前页某个 div,而不是跳转?
别硬套 href + target——target 只支持窗口、标签页、<frame>、<iframe name></iframe>,不支持 <div id="content"> 这类任意容器。正确做法是:<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>
<ul>
<li>把 <code>href="javascript:void(0)",并加 onclick 或用事件委托监听 area
fetch() 加载内容,再 innerHTML 注入目标 <div>
<li>如果必须保留语义化链接能力,可 fallback:<code>href="./data.html" + target="main-frame"(配合 <iframe name="main-frame"></iframe>),再 JS 监听 load 事件同步更新 div真正难的不是写法,是 coords 随 viewport 变化时的动态校准——没人愿意每次改个 margin 都重算一遍 poly 坐标。


















