问题标签 [execcommand]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
111358 浏览

javascript - 在 execCommand 中“粘贴为纯文本”的 Javascript 技巧

我有一个基于execCommand此处介绍的示例的基本编辑器。在区域内粘贴文本的方法有以下三种execCommand

  • Ctrl+V
  • 右键单击->粘贴
  • 右键单击->粘贴为纯文本

我想只允许粘贴没有任何 HTML 标记的纯文本。如何强制前两个操作粘贴纯文本?

可能的解决方案:我能想到的方法是为 ( Ctrl+ V) 设置 keyup 事件的侦听器,并在粘贴之前去除 HTML 标签。

  1. 这是最好的解决方案吗?
  2. 避免粘贴中的任何 HTML 标记是防弹的吗?
  3. 如何将侦听器添加到右键单击-> 粘贴?
0 投票
1 回答
784 浏览

javascript - 如何使用 javascript(或 jQuery)将 youtube 视频添加到 iframe(基于 Web 的 RTE)

我想创建一个带有 javascript (jQuery) 和 HTML 的富文本编辑器,其工作方式类似于“Blogger”。

我希望编辑器的用户能够添加格式化文本(粗体、不同大小的字体等)、添加图像和添加来自 YouTube 的视频。我的搜索结果显示所有基于 Web 的 RTE 都使用“document.execCommand”。虽然我找到了前两个示例(格式化文本和图像),但我没有找到任何添加视频的示例。

我尝试使用此代码(函数“测试”)但不起作用。单击按钮(theVideo)后,iframe(文本编辑器)为空。

有谁知道如何将视频添加到 iframe?不使用 execCommand 是否有其他解决方案?

0 投票
2 回答
1499 浏览

javascript - 为粗体定义 ExecCommand 函数?

ExecCommand 提供了一种在 iFrame 中加粗文本、斜体、下划线等的方法。

但它缺少创建<cite><strong>或的选项<em>formatBlock但仅适用于块元素而不是内联元素)。

我想使用 ExecCommand 函数进行创建<cite>-有什么方法可以实现吗?很明显,我想保持完美的解析,就像你在同一个选择中使用它两次时那样,bold而不是像这样的东西。surroundContents

我正在寻找 ExecCommand 粗体命令的定义或使用现有命令完美添加<cite>. 有什么建议么?我无法从浏览器的功能中提取它。当我尝试这样做时,它会说“本机代码”。

0 投票
3 回答
10516 浏览

javascript - 有什么比 document.execCommand 更好的吗?

在实现基于 Web 的富文本编辑器时,我读到这document.execCommand对于在 HTML 文档上执行操作很有用(比如使选择变为粗体)。但是,我需要一些更好的东西。具体来说,我需要确切地知道从 innerHTML 中添加或删除了哪些文本,以及在什么位置(作为整个文档的 HTML 表示的偏移量)。

我考虑使用内置的 document.execCommand 与 DOM4 的变异观察者一起使用,但 execCommand 似乎不能胜任这项任务:

  • 我看不到“取消粗体”选择的方法
  • 生成的 html 似乎因浏览器而异。(我想要 <span> 标签而不是 <b>,但一致性更重要)
  • 并且没有关于它如何处理冗余嵌套/相邻 < span > 标签的信息。

此外,根据我的需要,使用突变观察者似乎有点矫枉过正。

我的动机:我试图定期将文档更改传输到服务器而不重新传输整个文档。我将数据作为 HTML 表示上的插入和删除集合发送。如果有人知道如何从 CKEditor 中获取此功能(所以我不必从头开始),那么我会永远爱你。

注意:执行文本比较不是一个选项,因为它在非常大的文档上性能很差。

否则,我并不完全害怕尝试写一些这样做的东西。DOM 的范围对象提供的方法将处理大量繁重的工作。我也很感激有关这种可能性的建议。

0 投票
1 回答
471 浏览

javascript - execCommand 给出错误

我创建了一个新的 iframe,然后将其附加到主窗口文档并执行此 javascript:

其中 frame 是 iframe 元素。不幸的是,我收到此错误:

如何在 iframe 中启用 execCommand() 函数?有什么遗漏吗?

0 投票
3 回答
14693 浏览

javascript - 使用 execCommand 插入后如何获取图像元素?

使用 execCommand 插入图像后,有什么方法可以获取图像元素?例如

0 投票
2 回答
6106 浏览

html - contentEditable - execCommand 'heading' 仅适用于 Firefox

我有以下代码将所选文本包装在 H2 标签中。

问题是,它只适用于 Firefox(虽然我还没有在 IE 中测试过)。它在 Safari 或 Chrome 中不起作用。

我是否遗漏了什么,或者此功能与所有浏览器不兼容?

0 投票
1 回答
322 浏览

javascript - 访问 document.execCommand 的系统字体?

所以我在文本编辑区域(很像TinyMC 编辑器)上使用execCommand (带有 FontName 命令) ,但我不确定如何访问机器上最常见的系统字体列表。

或者更确切地说,是否应该指定某些最常用的字体并期望它们可以在客户端机器上找到?

(我做了功课,我没有找到关于这个主题的任何其他线程)。

谢谢,加布斯特罗

0 投票
0 回答
348 浏览

execcommand - 在选择颜色时保持文本选择处于活动状态

因此,我使用JSColor 选择器结合document.execCommand方法更改所选文本的前景,您可以在其中发送命令,如下所示:

fmtEdit 函数如下所示:

如果我从带有 onClick 事件的按钮或图像发送命令,则代码可以正常工作,例如:

但是,一旦我单击颜色选择器字段以选择颜色,所选文本就会失去焦点。

当我点击颜色选择器时,有没有办法保持对所选文本的选择?

非常感谢!加布斯特。

0 投票
1 回答
815 浏览

javascript - execCommand 没有选择?

我有以下 div:

在这个 div 中,我想让特定数量的单词在用户每次输入时看起来都是粗体的。因此,我有以下更改监听器:

我尝试使用document.execCommand()但它仅在我选择要加粗的文本时才有效。但我不想选择文本,因为用户不知道应该加粗的单词。