Skip to content

[FEAT] 建议使用 class 标识原文/译文,而不是添加 kiss-translator 标签(*隐藏原文*下删除原文) #890

Description

@liweishu
  1. Software Type / 软件类型
  • Type / 类型: Extension / 扩展
  • Target Browsers / 希望能工作的浏览器: all
  1. Is your feature request related to a problem? / 您的需求是否与某个问题相关?
    最主要问题是很多网页的DOM和CSS甚至js千奇百怪,kiss-translator 标签 会严重破坏 DOM 结构,经常导致与 css 脱钩丢失原渲染,甚至与 js 脱钩破坏控件,这在启用隐藏原文的时候尤为严重!
    另外这种方式再删除原文也可能与悬浮/气泡显示原文出现原文丢失的bug有关。

  2. Describe the solution you'd like / 描述您期望的解决方案
    显示原文这种基础模式下,完全可以在文本后添加<br><span>译文</span>,译文样式添加/覆盖通过 css 完成,这样对DOM破坏最小,译文基本能使用原css,js也基本不会有问题,毕竟通常 css 不会专门用 nth-of-type 这些来指定原本的 span 等,js 动态特效会控件也很少针对元素内的 span。
    当然也可以统一给原文添加span<span class=‘Orig’></span><br><span class='Tran'></span>,如隐藏原文只需要 .Orig.none{display:none},悬浮也可以通过 css 提供样式(display:blockoosition与更多……),换行也可以.or+br选择换行用 css 隐藏。

  3. Additional context / 补充信息
    即使遇到特殊情况,这种方式配合块级元素选择器 匹配到的元素会被当作块级节点处理也比原本插入 kiss-translator 标签更容易解决问题(有些问题因为 kiss-translator 标签,配置了块级元素仍然没解决)。

修改 class 在性能上也远比添加节点删除节点好,也使 js 更容易实现,如悬浮/气泡等高级渲染的 js 不容易出 bug。

当然某些固定高宽的块可能需要特别处理,配合匹配到的元素会被当作块级节点处理

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions