Skip to content

[bug] [window_tab] 切换标签页时,未修改文件却频繁弹出"是否保存"对话框 #1142

@EnterSuper

Description

@EnterSuper

问题描述

使用 window_tab 插件打开多个文件后(3个以上),在上栏标签页之间连续切换(不对文件内容做任何修改),会频繁弹出"是否保存该文件"的对话框。

复现步骤

  1. 打开 3 个以上的 markdown 文件
  2. 在上栏标签页之间连续不断地来回切换
  3. 对文件本身不做任何修改
  4. 切换若干次后,弹出"是否保存该文件"对话框
  5. 随后每次切换都会弹出“是否保存该文件”对话框

预期行为

未修改文件内容时,切换标签页不应弹出保存对话框。应丝滑切换。

实际行为

  • 切换若干次后弹出"是否保存"对话框

环境信息

  • Typora 版本:1.8.10
  • 插件版本:最新代码
  • 操作系统:Windows 11
  • 其他插件:未启用其他插件

问题分析

怀疑是 Typora 底层的修改检测机制(MutationObserver)将插件的 DOM 操作(如标签栏渲染、滚动位置恢复等)误判为文件内容修改,导致File.bundle.hasModified 被错误置为 true

尝试过以下方案均无法彻底解决:

  1. 切换前比较 File.editor.getMarkdown()File.bundle.savedContent,相同则清除修改标记 — 由于 Markdown往返转换(文件→DOM→getMarkdown())不保真,比较结果不可靠.
  2. 切换前调用 File.saveUseNode() 自动保存 — 仍偶尔出现弹窗

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions