如何检查所选文本是否为粗体(contenteditable)

2024-03-19

我正在使用内置的 html 实现自定义文本编辑器contenteditable特征。我需要知道用户何时在文本编辑器上选择文本,无论它是否为粗体。

这是我现在所拥有的:

HTML

<button onclick="boldit()">B</button>
<div id="editor" contenteditable="true" class="email-body">
    This is an <strong>editable</strong> paragraph.
</div>

JavaScript

function boldit(){
 document.execCommand('bold');
}

可靠的方法是遍历父树检查 getComputedStyle。

我假设您已经拥有选定的元素。

function isBold(_element) {
  var element = _element;
  while (element) {
    var style = getComputedStyle(element).fontWeight;
    if (Number(fontWeight) > 400 || fontWeight === 'bold' || fontWeight === 'bolder') {
      return true;
    }
    element = element.parentNode;
  }
  return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查所选文本是否为粗体(contenteditable) 的相关文章

随机推荐

  • struct {0} 和 memset 0 有什么区别[重复]

    这个问题在这里已经有答案了 假设我们有这样的结构 struct A int x int y 有什么区别 A a 0 and A a memset a 0 sizeof A 没有任何 最终结果是两者都将结构体成员初始化为0 C99 标准 6
  • Java 有 IndexSet 和 Range 类吗?

    在 Objective C Cocoa 中 我们有NSIndexSet类 它通过保留范围数组来有效地存储一系列唯一索引 例如 集合 1 2 30 57 将存储为范围 1 30 和 57 而不是存储为 32 个数字的数组 这有助于以简单快速的
  • 表格滚动侦听器

    我正在尝试找出滚动表的事件 我可以获取左侧参数 例如使用 scrollTable offset left 但我无法添加其变化的监听器 我想要的就是监视表格左滚动参数的变化并将其应用到另一个 DOM 元素 这不是问题 我的表格的 HTML 示
  • C++ lambda回调触发事件

    我一直在尝试了解 C 中的回调功能 我想要实现的目标如下 我有两个对象 每个对象都有自己的线程 一个物体A有一个指向第二个对象的指针B 参见示例 class A public private std unique ptr b b class
  • XmlReaderSettings CheckCharacters=false 似乎不起作用

    我正在尝试反序列化来自 Rest 服务的 xml 响应 我正在实现 IXmlSerialized 因为 xml 相当具体 并且我进行自定义序列化 响应包含非法 xml 字符 但由于我无法修改 xml 所以我必须处理它们 解决方案似乎很简单
  • 将一组布尔值转换为数字

    这是我将用来获取一组三个布尔值并将其转换为 switch 语句的 int 的代码 int bits 0 bool a true b false c true 101 5 bits bits a lt lt 2 bits bits b lt
  • python 在测试文件中的模块导入期间模拟函数调用

    我正在尝试模拟导入模块时执行的函数调用 下面是我遇到的问题的示例 app module py from util import get param PARAM get param param name class sample def ru
  • ImportError:导入 sampy.TurtleWorld 时没有名为 Tkinter 的模块

    我正在使用 Python 3 4 并按照本书进行操作 思考 Python 如何像计算机科学家一样思考 http www greenteapress com thinkpython thinkCSpy pdf 我实际上在一周前就发现了这个问题
  • 以编程方式设置网格排序

    是否可以在读取数据之前以编程方式设置 KendoUI 数据源的排序参数并避免第二个服务器读取 范围是对特定用户交互设置默认排序 如何 这是我想要做的一个例子 因为答案没有切中要害 或者也许我不明白事情是如何运作的 我定义了一个具有初始排序的
  • 根据单元格中的第一个字符隐藏 Google 电子表格中的行

    我正在努力向 Google 电子表格添加功能 电子表格从网络导入数据 并且我将其全部格式化 我的一个专栏是一系列字符串 以两种方式之一进行格式化 String 或 String 不带空格 基本上是从网络导入斜体 我正在尝试编写一个在打开电子
  • C# - 如何将单个 Excel 工作表从一个工作簿复制到另一个工作簿?

    我需要将工作表从一个工作簿复制到另一个工作簿中 但我有点卡住了 前提是我有一个 主 工作簿 其中存储了许多报告的模板 然后我需要创建特定工作表的空白副本并将其添加到新工作簿中 这是我到目前为止所拥有的 private void Create
  • 无法在 Swift 中使用缓存生成视频缩略图

    一直在努力让它发挥作用 我正在生成视频缩略图 但它在集合视图中加载非常重 我想缓存它们 但找不到解决方案 这是我正在使用的代码 func previewImageFromVideo url NSURL gt UIImage let asse
  • 将现有项目转换为可定制的框架

    我是一名 Android 开发人员 我需要创建 IOS 应用程序 所以我这样做了 应用程序现在已经准备好了 但现在我想把它变成一个库 框架 我的意思是每个客户的不同项目将使用相同的代码库 他们将能够更改应用程序的文本字符串和颜色 其余的业务
  • 使用 FakeItEasy 模拟方法内的方法

    如何模拟 伪造在另一个函数中调用的函数的结果 通常 Test2 是一个我不喜欢获取真实数据的 DataAccess 方法 我喜欢我的单元测试测试的是业务逻辑 这就是我现在所拥有的 但它根本不起作用 Sum 始终被断言为 5 public i
  • 在具有序列化问题的 Dataframe 上调用 UDF

    我在 UDF 博客上查看了一些似乎有效的示例 但实际上当我运行它们时 它们给出了臭名昭著的任务不可序列化错误 我觉得奇怪的是 这篇文章已经发表了 却没有提到这一点 运行 Spark 2 4 代码 非常简单 Spark 中一定有什么变化 de
  • 查询 MediaStore:连接缩略图和图像(在 ID 上)

    我正在为 Android 开发一个 照片库 类型的应用程序 它最初是作为 Udacity 开发 Android 应用程序的最终项目 因此它的整体结构 活动 内容提供者等 应该非常健全 并且已被 Udacity Google 接受认证 然而
  • Android中如何混淆字符串?

    我想混淆我的 api url 我可以使用 Proguard 吗 如果是 我该怎么做 以及如何在 Proguard 配置文件中添加类来混淆类中存在的方法和变量 您现在可以使用新的 gradle 插件 库来有效地混淆类中的字符串 请在此处查看
  • 如何使用 Spark 处理一系列 hbase 行?

    我正在尝试使用 HBase 作为 Spark 的数据源 因此 第一步是从 HBase 表创建 RDD 由于 Spark 使用 hadoop 输入格式 我可以找到一种通过创建 rdd 来使用所有行的方法http www vidyasource
  • 将 HTML 转换为图像

    Duplicate 创建网页缩略图的最佳方法是什么 https stackoverflow com questions 65078 what is the best way to create a web page thumbnail 我想
  • 如何检查所选文本是否为粗体(contenteditable)

    我正在使用内置的 html 实现自定义文本编辑器contenteditable特征 我需要知道用户何时在文本编辑器上选择文本 无论它是否为粗体 这是我现在所拥有的 HTML