- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当用户编辑 contenteditable div
并按下某些键时,我想覆盖默认行为。例如,我想在用户按下 ENTER 时插入一个普通的换行符。我使用 document.execCommand("insertText",...)
到目前为止,这是我发现的使用户可撤消和可重做此操作的唯一方法。
<div id="editor" contenteditable="true" style="white-space:pre-wrap">
Some text....
</div>
<script>
$("#editor").keydown(function(evt){
console.log(evt.keyCode);
if(evt.keyCode==13){
document.execCommand("insertText",false,"\n");
evt.preventDefault();
evt.stopPropagation();
}
}
</script>
此代码适用于 chrome 和 firefox。但是,ie 不支持“inserttext”。是否有一种方法可以使用 ie 插入文本,以便用户可以撤消它?
最佳答案
IE 11 有新的 ms-beginUndoUnit和 ms-endUndoUnit命令。
我尝试使用它们为 IE 11 创建一个可行的解决方案,但未能成功。使用 DOM 范围和选择很难插入换行符;您可以在 IE 中使用其旧版 document.selection
更轻松地做到这一点和 TextRange
对象,但不幸的是 IE 11 已删除 document.selection
(但不是 TextRange,奇怪的是)这使得它变得困难。在编写了一个讨厌的解决方法以从选择中创建一个 TextRange 之后,撤消无论如何都不起作用。这是我所做的:
我决定再试一次使用 DOM 范围和选择对象。换行符插入代码是说明性的,不应该用于任何严肃的事情,因为它涉及添加一个不间断的空格来给插入符一个去处(试图将它直接放在 <br>
之后是行不通的)。撤消确实会删除插入的内容,但遗憾的是不会移动插入符号。
关于javascript - Internet Explorer 替代 document.execCommand ("insertText",...),用于用户可以撤消/重做的文本插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124212/
我试图通过添加这样的 CSS 类以编程方式突出显示搜索词的所有出现: const style = document.createElement('style'); style.setAttribute
我正在尝试使用 execCommand 实现所见即所得的编辑器(我知道存在许多 WYSIWYG 编辑器,但它们对我来说都不够好)。现在,一切正常,但如果我尝试使用 backColor 命令,它似乎不起
我正在使用 vanilla JavaScript 构建一个业余的富文本编辑器,document.execCommand() 对于启用文本编辑器的核心功能至关重要。 例如粗体、斜体和无序列表命令: Ar
我创建一个新的 iframe,然后将其附加到主窗口文档并执行此 javascript: frame.contentDocument.execCommand('insertimage',0,'obama
正如标题所解释的,由于某种原因 document.execCommand('heading', false, 'h1') (或任何其他标题大小)不起作用。但是,其他命令(例如 'bold'、'link
我目前正在制作一个 WYSIWYG 编辑器,但遇到了一些问题。我正在尝试添加链接,但是当我去添加链接时,它会将焦点从 div 上移开,因为用户必须在文本框中键入链接。 我有一个获取光标最后位置的函数:
使用基于选择/键盘命令 的所见即所得 编辑器。效果很好,除了... 与所有其他键盘命令一起,它可以打开和关闭特定样式 I、打击等。 使用 execCommand('bold'),它不会取消加粗文本。这
我想创建一个 WYSIWYG 编辑器,使用 jQuery 作为框架,从中我可以使用不同的方法来简化生产。 我现在确实有一个工作的编辑器,它运行良好。我使用 iFrame,并将其 designMode
如果我在 Firefox 中尝试 execCommand("justifycenter"... 我页面上的一个段落,它不起作用;它给我这个疯狂的错误: uncaught exception: [Exc
所以我正在创建类似在线文本编辑器的东西。在经历了一些错误之后,我只注意到如果我尝试做一些事情,比如在中心对齐一些文本,它会创建一个带有 text-align:center 的 div,因为它应该。但是
不知道这种编辑怎么叫,以前好像在哪里见过。假设您有一篇带有标题、正文和页脚的文章。在您自己的所见即所得编辑器中,每个文章部分都有三个按钮,或者可能有一个包含这些选项的下拉菜单。 当您将文章内容粘贴到编
我有以下 div: 在这个 div 中,我想让特定数量的单词在每次用户输入时都显得粗体。因此,我有以下更改监听器: $('#foo').live('focus', function() { b
我一直在对文档调用 execCommand 以将所选文本加粗或设置其颜色。但最近我需要在一定范围内使用 execCommand 而不是选定的文本。 我可以这样做吗?如果可以,怎么做? 最佳答案 可以,
我试图从我之前创建的特定文本区域中删除tinyMCE,但以下命令不断产生“未定义”错误(使用firebug控制台检查): tinyMCE.execCommand('mceFocus', false,
我有以下代码演示 contenteditable 属性和一个按钮,该按钮将粗体文本注入(inject)到具有 contenteditable 区域的段落中。我的问题是如何在单击粗体后将焦点返回到我离开
这个问题我找了好久,没能解决。我从私有(private) git 存储库中拉下了一个项目。有些人能够构建,而像我这样的其他人却遇到以下错误: Error:Gradle:Execution faile
我正在尝试将网页的所有链接复制到剪贴板。我试图将所有 anchor 标记加入到一个字符串中,将该字符串放入输入字段中,然后通过 document.execCommand("copy") 复制它,但不知
我正在研究带有突出显示选项的自定义文本区域。现在添加了 h1-h4 和粗体选项。 问题: 当我选择文本并单击 Heading1 按钮时,它会设置整行而不是选定文本的样式。当我单击“粗体”按钮时,它仅设
我打算使用 Document.execCommand()方法以及 contenteditable属性来构建我的自定义 WYSIWYG 编辑器。但是当我查看 documentation 时为 Docum
我正在尝试使用 jQuery 和 execCommand 创建一个文本编辑器。一切都很顺利,直到我注意到 superscript 和 subscript 都没有正确切换。 这个 jsFiddle (
我是一名优秀的程序员,十分优秀!