javascript - 如何在 javascript 所见即所得编辑器中实现代码按钮
问题描述
我尝试在 javascript 中构建自己的所见即所得编辑器。大多数按钮都非常简单(只要 document.execCommand 有一个 commandId)。
但是如何在 StackOverflow 编辑器中实现代码选项。
我尝试了什么:
document.execCommand('formatBlock', '<pre><code>')
不幸的是,它不起作用。我做错了什么?
解决方案
该<code>
标记不是formatBlock支持的标记列表的一部分。但是,您可以使用以下方法插入<pre>
标签:
document.execCommand('formatBlock', false, '<pre>');
您可以查看w3c 文档以获取支持的标签列表(取决于浏览器)。
如果您不关心 IE,可以使用该insertHTML
选项,与 结合使用document.getSelection()
,如下所示:
document.execCommand('insertHTML', false, `<pre><code>${document.getSelection()}</code></pre>`)
或者您可以自己实现该功能。正如其他人指出的那样,document.execCommand
现在已经过时,因此它可能是您最安全的选择,具体取决于您需要支持的浏览器。
推荐阅读
- optimization - 使 Maxima 代码运行得更快(收敛半径)
- symfony - 当一个字段在 Symfony 中具有特定值时添加额外的表单字段
- python - 图像对象反射
- python - 逐行读取文件并使用 split() 函数将行拆分为使用 python 的整数列表
- python-3.x - 使用 mathplotlib 显示存储在数组中的图像的坐标
- docker-image - podman 拉图像错误“拨号 tcp [::1]:8000: 连接: 连接被拒绝”
- html - 为表中的所有 td 重复使用下拉列表
- excel - 在 Excel 中使用自定义函数计算 IRR 时需要帮助
- facebook - 如何将 Facebook Ads Insight API 与应用令牌一起使用?
- django - 如何使用 Django 过滤器根据键值对从 postgres JSON 字段中检索这些行