
xcsandClaude Opus 5
6f721ffc6d
fix(interaction): data-options 收尾防重改认显式标记,不再靠「有没有 selected 这个词」
评审复现了一个真泄漏:selectCurrent 用 /\bselected\b/.test(block) 当「行内那一遍
处理过没有」的代理 —— 而一行被正确处理过、且合法地落在「没有选中项」上(值不在
选项里,或这一格还没填),跟「压根没被处理过」在字面上是同一个样子。renderView
收尾那一遍拿外层作用域重新处理这块,若外层恰好有个同名裸键命中某个选项,就会把
它错误地渗进这一行 —— 界面撒谎:显示一个这一行数据里根本不存在的选中态。
改记一个跟内容无关的标记属性 data-sel-scoped:处理完(不管有没有真标出 selected)
都打上,下一遍见到标记就跳过;renderView 收尾前把它整个剥掉,不留进交给沙箱的成品。
顺带治了评审点的 Minor #1:旧写法还会被 <option> 显示文字里恰好出现的 "selected"
误判(枚举标签写成 "Selected Value" 那种)。
三条新用例:行内下拉值不在选项里 / 新加的空行,均验证不再被外层同名值渗透
(RED 证实了泄漏确实发生过);行外独立下拉仍正确标好 selected(防重归防重,
不能把本该工作的那条也防没了)。
docs/HTML报告生成规范.md 补一句:data-options 与 data-slot 不能共存,后者会被
fillOptions 摘掉不起作用(评审 Minor #2)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
2026-08-29 06:21:26 +08:00
..
2026-08-29 02:56:39 +08:00
2026-08-02 13:41:44 +08:00
2026-08-03 12:28:31 +08:00
2026-08-27 11:44:35 +08:00
2026-08-27 23:20:15 +08:00
2026-08-29 02:56:39 +08:00
2026-08-24 10:26:45 +08:00
2026-08-27 23:20:15 +08:00
2026-08-29 04:42:54 +08:00
2026-08-28 12:38:26 +08:00
2026-08-26 13:29:36 +08:00
2026-08-28 10:50:16 +08:00
2026-08-26 03:47:48 +08:00
2026-08-27 23:20:15 +08:00
2026-08-29 02:56:39 +08:00
2026-08-26 13:29:36 +08:00
2026-08-29 06:21:26 +08:00
2026-08-26 14:34:19 +08:00
2026-07-27 22:36:58 +08:00
2026-08-26 10:55:58 +08:00
2026-08-26 02:38:12 +08:00
2026-08-26 14:34:19 +08:00
2026-08-27 00:10:28 +08:00
2026-08-26 13:29:36 +08:00
2026-08-03 12:28:31 +08:00
2026-08-28 12:38:26 +08:00
2026-08-28 10:47:33 +08:00
2026-08-26 13:29:36 +08:00
2026-08-28 01:13:07 +08:00
2026-08-26 14:34:19 +08:00