CKEditor插件-elementPath的正确行为

CKEditor插件-elementPath的正确行为,ckeditor,Ckeditor,目前,我有以下HTML内容 <span criteria="{&quot;animal&quot;:[&quot;DOG&quot;]}">abc</span> def <span criteria="{&quot;animal&quot;:[&quot;CAT&quot;]}">ghi</span> 测试用例1 当我选择我的文本时,如下所示 我得到以下日志 0 --> ab

目前,我有以下HTML内容

<span criteria="{&quot;animal&quot;:[&quot;DOG&quot;]}">abc</span> def <span criteria="{&quot;animal&quot;:[&quot;CAT&quot;]}">ghi</span>
测试用例1 当我选择我的文本时,如下所示

我得到以下日志

0 --> abc
1 --> <span criteria="{&quot;animal&quot;:[&quot;DOG&quot;]}">abc</span> def <span criteria="{&quot;animal&quot;:[&quot;CAT&quot;]}">ghi</span>

criteriaElement is something
criteriaElement attribute length is 1

attribute is {"operator":["DOG"]} 
0 --> <span criteria="{&quot;animal&quot;:[&quot;DOG&quot;]}">abc</span> def <span criteria="{&quot;animal&quot;:[&quot;CAT&quot;]}">ghi</span>
我心里有些疑惑

  • 为什么只有一个元素?我希望
    elementPath
    中会有2个元素。一个是
    def
    ,另一个是
    ghi
  • 虽然测试用例1和测试用例2都包含包含完整文本的元素,但为什么在测试用例2中,
    elementPath.contains…
    不返回任何内容

  • Elementspath与选择不以这种方式相关。它表示插入符号下的元素堆栈。设想这样一种情况,
    []
    表示选择,
    |
    表示插入符号:

    <ul>
        <li>Quux</li>
        <li>F[oo <span class="bar">Bar</span> <span class="baz">Ba|]z</span></li>
        <li>Nerf</li>
    </ul>
    
    • 库克斯
    • F[oo Bar Ba |]z
    • 削弱
    您的选择视觉上包含文本“oo Bar Ba”,插入符号位于a和z之间。此时,elementspath将显示“ul>li>span”。另一个跨度元素“bar”是跨度元素“baz”的兄弟元素,因此不显示,只显示上升点

    您可以这样认为,插入符号只能存在于html中,而elementspath显示该文本节点的上升点

    你想干什么?要显示当前选择中的数据?为什么?你想把它展示在哪里?您希望它以何种方式显示,以及为什么显示?我猜有一种不同于使用elementspath的方式来满足您的需求(我认为这可能是并且)



    太长,不能作为注释:如果工具栏按钮操作的目标元素具有criteria属性-如果有一个跨度具有criteria属性,而有一个跨度不具有criteria属性,该怎么办?他们的顺序重要吗?如果有两个跨度具有“条件”属性,该怎么办?如果它们是这样嵌套的呢:
    F[oo-Bar-Ba |]z-qux-xyzy

    -目标很难确定。如果某个元素具有该属性,我建议您向该元素添加一个小标记,而不是单击该标记或右键单击该元素,您可以编辑/查看条件。您甚至可以在编辑器中通过自定义
    editor.css
    这样的规则来直观地指示属性范围,如
    span[criteria]{color:red;}

    Elementspath与选择无关。它表示插入符号下的元素堆栈。设想这样一种情况,
    []
    表示选择,
    |
    表示插入符号:

    <ul>
        <li>Quux</li>
        <li>F[oo <span class="bar">Bar</span> <span class="baz">Ba|]z</span></li>
        <li>Nerf</li>
    </ul>
    
    • 库克斯
    • F[oo Bar Ba |]z
    • 削弱
    您的选择视觉上包含文本“oo Bar Ba”,插入符号位于a和z之间。此时,elementspath将显示“ul>li>span”。另一个跨度元素“bar”是跨度元素“baz”的兄弟元素,因此不显示,只显示上升点

    您可以这样认为,插入符号只能存在于html中,而elementspath显示该文本节点的上升点

    你想干什么?要显示当前选择中的数据?为什么?你想把它展示在哪里?您希望它以何种方式显示,以及为什么显示?我猜有一种不同于使用elementspath的方式来满足您的需求(我认为这可能是并且)



    太长,不能作为注释:如果工具栏按钮操作的目标元素具有criteria属性-如果有一个跨度具有criteria属性,而有一个跨度不具有criteria属性,该怎么办?他们的顺序重要吗?如果有两个跨度具有“条件”属性,该怎么办?如果它们是这样嵌套的呢:
    F[oo-Bar-Ba |]z-qux-xyzy

    -目标很难确定。如果某个元素具有该属性,我建议您向该元素添加一个小标记,而不是单击该标记或右键单击该元素,您可以编辑/查看条件。您甚至可以在编辑器中通过自定义
    editor.css
    这样的规则来直观地指示属性范围,如
    span[criteria]{color:red;}

    Elementspath与选择无关。它表示插入符号下的元素堆栈。设想这样一种情况,
    []
    表示选择,
    |
    表示插入符号:

    <ul>
        <li>Quux</li>
        <li>F[oo <span class="bar">Bar</span> <span class="baz">Ba|]z</span></li>
        <li>Nerf</li>
    </ul>
    
    • 库克斯
    • F[oo Bar Ba |]z
    • 削弱
    您的选择视觉上包含文本“oo Bar Ba”,插入符号位于a和z之间。此时,elementspath将显示“ul>li>span”。另一个跨度元素“bar”是跨度元素“baz”的兄弟元素,因此不显示,只显示上升点

    您可以这样认为,插入符号只能存在于html中,而elementspath显示该文本节点的上升点

    你想干什么?要显示当前选择中的数据?为什么?你想把它展示在哪里?您希望它以何种方式显示,以及为什么显示?我猜有一种不同于使用elementspath的方式来满足您的需求(我认为这可能是并且)


    太长,不能作为注释:如果工具栏按钮操作的目标元素具有criteria属性-如果有一个跨度具有criteria属性,而有一个跨度不具有criteria属性,该怎么办?他们的顺序重要吗?如果有两个跨度具有“条件”属性,该怎么办?如果它们是这样嵌套的呢:
    F[oo-Bar-Ba |]z-qux-xyzy

    -目标很难确定。如果某个元素具有该属性,我建议您向该元素添加一个小标记,而不是单击该标记或右键单击该元素,您可以编辑/查看条件。您甚至可以在编辑器中通过自定义
    editor.css
    这样的规则来直观地指示属性范围,如
    span[criteria]{color:red;}

    Elementspath不是