Chrome 空 contenteditable 保留样式

2024-05-30

当我在页面中有可内容编辑的部分时,Chrome 似乎做了一些奇怪/有趣/令人困惑的事情。 如果您有一段用<span>(也许是其他标签,我不知道)应用了一个类,该类将附加样式应用于文本(字体系列、颜色等),然后删除可编辑部分中的所有文本。当您再次开始输入时,文本看起来与开始删除文本时的文本相同,但似乎使用原始计算的 CSS 进行样式设置,而不是具有包含适当类的跨度。

http://jsfiddle.net/tomprogramming/wS4Gp/ http://jsfiddle.net/tomprogramming/wS4Gp/

知道为什么会发生这种情况,或者我是否可以将其关闭? Firefox 和 IE 似乎都保留了其中的类的跨度。

这就是我的开始

<span class="level1" style="font-weight:bold;">This is level'd text</span>

这就是我最终得到的结果

<span style="color: rgb(255, 255, 255); font-family: helvetica, arial, sans-serif; font-size: 48.18181610107422px; font-weight: bold;">This is level'd text</span>

以及相关的CSS

.editable .level1 {
    color: #fff;
    font-size:3em;
    font-family:helvetica, arial, sans-serif;
}

我明白发生了什么,它试图像 Word 和其他处理器一样保留您的样式;然而,这些级别在我们的编辑器中很重要,应该保留。如果他们不能,我宁愿关闭这个“功能”。


防止 Chrome 保留插入符号位置的旧计算样式的一种方法是清除浏览器选择,然后恢复它(以保留选择)。这应该在删除样式元素之后和插入新内容之前完成。做以下几件事:

let selection = window.getSelection();
if (selection && selection.rangeCount > 0 && selection.isCollapsed) {
  let range = selection.getRangeAt(0);
  selection.removeAllRanges();
  selection.addRange(range);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 空 contenteditable 保留样式 的相关文章

随机推荐

  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • axios onUploadProgress 和 onDownloadProgress 不适用于 CORS

    我有一个用 Node js 编写的服务器 以及一个在浏览器中运行的 Web 客户端 客户端应向服务器上传和下载一些文件 服务器并不是最初交付客户端的服务器 所以这里就出现了跨域的情况 服务器使用cors https www npmjs co
  • 从数据库中删除项目后如何从 recyclerView 中删除项目

    我正在使用 recyclerView 来显示当用户单击每个项目的删除按钮时可以删除的项目列表 为了做到这一点 我使用了 recyclerview 适配器 我想要的是 从该 recycleView 适配器中 当用户单击某个项目的删除按钮时 会
  • $ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3

    我试着跑 bundle exec rake db reset并在控制台上发现以下内容 Couldn t drop db development sqlite3
  • 使用基本量角器测试等待量角器与页面同步时遇到错误

    describe my homepage function var ptor protractor getInstance beforeEach function ptor ignoreSynchronization true ptor g
  • PHP:str_replace() - 忽略空格

    我有一个类似的字符串 我想将其替换为 问题是我不知道之间是否会有空格 和 可能有空白 也可能没有空白 可能有制表符或可能有换行符 我该如何更换
  • 如何获得google sql云实例的超级权限?

    我正在开发谷歌应用程序引擎 在 google cloud sql 中 我创建了一个实例 每当我在 cloud sql 实例中导入 sql 文件时 它都会向我显示如下错误 第 1088 行出现错误 1227 42000 访问被拒绝 您需要 至
  • 在 Vue.js 2.0 中实现 v-model 格式化的正确方法是什么

    举个简单的例子 输入货币数据的文本框 要求是以 1 234 567 格式显示用户输入并删除小数点 我尝试过 vue 指令 当 UI 由于其他控件而刷新时 不会调用指令的 update 方法 因此文本框中的值将恢复为没有任何格式的值 我还尝试
  • ASP.Net 异步 HTTP 文件上传处理程序

    我正在尝试在 C 中创建一个异步文件上传处理程序 并且可以通过 AJAX 异步请求提供有关文件进度的更新 基本上 如果请求是 POST 它会将一些信息加载到会话中 然后开始上传 如果请求是 GET 它会返回上传的当前状态 上传的字节数 总字
  • 仅支持以下协议方案的跨源请求:http

    这是一个常见的 JavaScript 问题 但它在使用 Splunk JavaScript SDK 的代码中弹出 错误是 XMLHttpRequest 无法加载 file C proxy services auth login output
  • slf4j 中的警告计数吗?

    有没有一种简单的方法可以以编程方式找出自程序启动以来在某个级别记录的消息总数 我可以通过在 Logger 周围编写一个包装器并在任何地方使用它来做到这一点 但也许有更简单的方法 None
  • Cloud Foundry 解释

    所以我一直在阅读 Cloud Foundry 但我仍然对它是什么感到困惑 无论如何 这是我对 CF 上的 PaaS 的看法 希望你们能告诉我我是否错了 并更好地解释一下 Microsoft Azure 或 Google AppEngine
  • 仅在 Safari 中位于 div 外部的文本

    我有这个错误 让一些文本出现在右侧 div 之外的几个像素处 奇怪的是 这种情况只发生在 Safari 中 我以前从未见过它 它只是我使用过的常规 HTML CSS 我在互联网上环顾四周 但找不到完全相同的问题 由于高度固定 只有一些内容在
  • slf4j-log4j12 和 log4j-over-slf4j 之间的区别

    slf4j log4j12 和 有什么区别log4j over slf4j https www slf4j org legacy html log4j over slf4j以及什么时候应该使用它们
  • 初始化 ConcurrentHashMap 值的最快方法

    ConcurrentHashMap 通常在并发环境中用于聚合某个键下的某些事件 例如计算某些字符串值的命中数 如果我们事先不知道密钥 我们需要有一个好的方法来根据需要初始化密钥 它应该在并发性方面快速且安全 这个问题的最佳模式 就效率而言
  • 如何加速我的 Perl 程序?

    这确实是两个问题 但它们非常相似 为了简单起见 我想我应该把它们放在一起 Firstly 给定一个已建立的 Perl 项目 除了简单的代码优化之外 还有哪些不错的方法可以加速它 Secondly 用Perl从头开始编写程序时 有哪些好的方法
  • 当我重新运行 Flink 消费者时,Kafka 再次消费最新消息

    我在用 Scala 编写的 Apache Flink API 中创建了一个 Kafka 消费者 每当我从某个主题传递一些消息时 它就会及时接收它们 但是 当我重新启动使用者时 它不会接收新的或未使用的消息 而是使用发送到该主题的最新消息 这
  • Wix 为整个树生成单个组件 id

    我是一个几乎没有 wix 经验的人 我正在努力支持 Windows 以及我负责的组件 我正在尝试为我的产品生成的一组文件创建合并模块 这些文件存在于许多子目录中 我想知道如何为整个树中的所有文件创建一个组件 ID 我不担心小的升级 因为那是
  • 仅使用 typescript(没有 webpack 和 bable),我可以获得在浏览器中运行的多文件解决方案吗?

    tsconfig json 需要什么才能在 Chrome 中工作 这样我只需运行 tsc 就可以在浏览器中查看该文件 并且适当的结果将显示在控制台中 index html 包含 index ts 包含 import alpha from a
  • Chrome 空 contenteditable 保留样式

    当我在页面中有可内容编辑的部分时 Chrome 似乎做了一些奇怪 有趣 令人困惑的事情 如果您有一段用 span 也许是其他标签 我不知道 应用了一个类 该类将附加样式应用于文本 字体系列 颜色等 然后删除可编辑部分中的所有文本 当您再次开