- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简而言之,问题是:给定一个所见即所得编辑器(CKEditor),您想要制作一个执行文本转换的插件 - 选择一段文本并操作其中的文本(例如大写)。示例:
this is paragraph one
this is paragraph two
如果粗体代表您的选择,结果将是
this is paragraph ONE
THIS is paragraph two
这里的问题是,即使选择不包含完整标签,选择也将是完整的 HTML 片段。所选 HTML 为:
<p>one</p> <p>this</p>
注意第一个和最后一个 <p>
标签。当您在选择的 html 中进行 dom 遍历时,应用文本转换并替换 html,它将使用这些部分标签,因此您的结果将变为:
this is paragraph
ONE
THIS
is paragraph two
我检查了是否可以将第一个和最后一个部分标记与其 dom 父级“合并”,但是选择对象是隔离的,它没有来自原始上下文的兄弟级或父级。
还尝试找到一个选项来检索没有这些自动固定标签的选择,但没有运气。
在 CKEditor 文档中,他们提到了 walker object - 但是,它会自动从选择扩展到完整的封闭标记,这意味着选择仅用作最小边界。
此外,由于选择对象是隔离的,因此不可能仅更改其中的 dom 节点文本值 - 需要替换原始 dom 片段(至少在 CKEditor 的情况下)。
我尝试尽可能不坚持使用 CKEditor api,但目前我也没有看到任何替代方案。这真的是一个难题还是我遗漏了一些东西?
最佳答案
一种解决方案是使用浏览器引擎用标签来标记所选区域(据我所知,这是 native 操作)。这与您将选择设置为粗体或斜体相同 - 但这里它将是一个临时包装。然后你遍历 DOM 并替换临时标签中的内容 - 最后删除标签(保留内容)。
这确保您可以将转换应用到精确的选择上,并且通过删除标签,您不会破坏原始 DOM。步骤简而言之:
不太优雅但有效。这是受到 @Andrew_Mast 关于包裹在跨度中的想法的启发。
关于javascript - 如何避免部分选择破坏 block 级 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684943/
是否有某种方法可以使用 JPA 或 Hibernate Crtiteria API 来表示这种 SQL?或者我应该将其作为 native 执行吗? SELECT A.X FROM (SELECT X,
在查询中, select id,name,feature,marks from (....) 我想删除其 id 在另一个 select 语句中存在的那些。 从 (...) 中选择 id 我是 sql
我想响应用户在 select 元素中选择一个项目。然而这个 jQuery: $('#platypusDropDown').select(function () { alert('You sel
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个回答) 关闭8年前。 我正在学习 SQL
This question already has answers here: “Notice: Undefined variable”, “Notice: Undefined index”, and
我在 php 脚本中调用 SQL。有时“DE”中没有值,如果是这种情况我想从“EN”中获取值 应该是这样的,但不是这样的 IF (EXISTS (SELECT epf_application_deta
这可能是一个奇怪的问题,但不知道如何研究它。执行以下查询时: SELECT Foo.col1, Foo.col2, Foo.col3 FROM Foo INNER JOIN Bar ON
如何在使用 Camera.DestinationType.FILE_URI. 时在 phonegap camera API 中同时选择或拾取多个图像我能够一次只选择一张图像。我可以使用 this 在
这是一个纯粹的学术问题。这两个陈述实际上是否相同? IF EXISTS (SELECT TOP 1 1 FROM Table1) SELECT 1 ELSE SELECT 0 相对 IF EXIS
我使用 JSoup 来解析 HTML 响应。我有多个 Div 标签。我必须根据 ID 选择 Div 标签。 我的伪代码是这样的 Document divTag = Jsoup.connect(link
我正在处理一个具有多个选择框的表单。当用户从 selectbox1 中选择一个选项时,我需要 selectbox2 active 的另一个值。同样,当他选择 selectbox2 的另一个值时,我需要
Acme Inc. Christa Woods Charlotte Freeman Jeffrey Walton Ella Hubbard Se
我有一个login.html其中form定义如下: First Initial Plus Last Name : 我的do_authorize如下: "; pri
$.get( 'http://www.ufilme.ro/api/load/maron_online/470', function(data
我有一个下拉列表“磅”、“克”、“千克”和“盎司”。我想要这样一种情况,当我选择 gram 来执行一个函数时,当我在输入字段中输入一个值时,当我选择 pounds 时,我想要另一个函数来执行时我在输入
我有一个 GLSL 着色器,它从输入纹理的 channel 之一(例如 R)读取,然后写入输出纹理中的同一 channel 。该 channel 必须由用户选择。 我现在能想到的就是使用一个 int
我想根据下拉列表中的选定值生成输入文本框。 Options 2 3 4 5 就在这个选择框之后,一些输入字段应该按照选定的数字出现。 最佳答案 我建议您使用响应式(Reac
我是 SQL 新手,我想问一下如何根据首选项和分组选择条目。 +----------+----------+------+ | ENTRY_ID | ROUTE_ID | TYPE | +------
我有以下表结构: CREATE TABLE [dbo].[UTS_USERCLIENT_MAPPING_USER_LIST] ( [MAPPING_ID] [int] IDENTITY(1,1
我在移除不必要的床单时遇到了问题。我查看了不同的论坛并将不同的解决方案混合在一起。 此宏删除工作表(第一张工作表除外)。 Sub wrong() Dim sht As Object Applicati
我是一名优秀的程序员,十分优秀!