V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
manyfreebug
V2EX  ›  JavaScript

如何分辨页面上的一段 HTML 是富文本编辑器生成的还是直接用 html 的语法书写的?

  •  
  •   manyfreebug · 2021-09-25 23:04:38 +08:00 · 2246 次点击
    这是一个创建于 1184 天前的主题,其中的信息可能已经有所发展或是发生改变。

    富文本编辑器能将一段普通文本形成对应的 HTML 标签,有什么特征可以分辨出这段 html 是富文本编辑器生成还是直接用 html 的语法书写的?

    例如这张页面框中的这部分,是如何形成的呢: https://developer.mozilla.org/zh-CN/docs/Learn

    12 条回复    2021-10-20 15:26:41 +08:00
    wzzzx
        1
    wzzzx  
       2021-09-25 23:27:42 +08:00   ❤️ 1
    为什么要分辨这个?
    xiaoming1992
        2
    xiaoming1992  
       2021-09-25 23:30:09 +08:00   ❤️ 1
    富文本编辑器生成的 `<p>hello</p>` 和 直接用 html 语法书写的 `<p>hello</p>` 有什么区别吗?
    shapl
        3
    shapl  
       2021-09-25 23:32:38 +08:00   ❤️ 1
    看 class 算不?富文本一般没这个。
    DoveAz
        4
    DoveAz  
       2021-09-25 23:38:35 +08:00 via Android   ❤️ 1
    几乎无法分辨
    Pastsong
        5
    Pastsong  
       2021-09-25 23:42:21 +08:00   ❤️ 1
    你点一下最下面的 Edit on GitHub 那就知道是怎么生成的了
    manyfreebug
        6
    manyfreebug  
    OP
       2021-09-25 23:43:01 +08:00
    @shapl 有的可以靠 class="markdown_body" class="richtext_body"识别出来,但大部分 html 好像没法分辨
    manyfreebug
        7
    manyfreebug  
    OP
       2021-09-25 23:47:26 +08:00
    @Pastsong 这个方法可能可以针对 mdn 的页面,但有没有什么通用的方法可以用在别的网站上呢
    Pipecraft
        8
    Pipecraft  
       2021-09-25 23:51:16 +08:00   ❤️ 1
    富文本编辑器生成的网页代码一般会包含 inline style 代码。有的设置字体大小,颜色的会用到 <font size=` ,<font color=` 这种标签。直接用 html 的语法书写的一般会用 class 设置字体和颜色。
    2i2Re2PLMaDnghL
        9
    2i2Re2PLMaDnghL  
       2021-09-26 09:44:31 +08:00   ❤️ 1
    你只能通过一些启发式的方法去判断,比如你 #6 说的 class,或者 #8 说的 font,或者 span style (毕竟 html5 好像移除了 font )
    至于通用的方法,应当是无解。
    rodrick
        10
    rodrick  
       2021-09-26 13:55:55 +08:00
    先说说看为啥要分辨 感觉这个需求很特别
    3wdddd
        11
    3wdddd  
       2021-10-20 15:25:14 +08:00   ❤️ 1
    看是什么富文本,大多富文本都有严格的文档结构,比如说 inline 标签一定在 block 标签里面
    有严格的语义化标签
    有特定的样式命名空间例如
    .editorName p
    .editorName span
    当内容极致规范的时候,是富文本的可能性很大
    3wdddd
        12
    3wdddd  
       2021-10-20 15:26:41 +08:00
    很多还会将状态存到 htmlAttrs 上 例如 data-xxxx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.