contenteditable=“;true”:创建语法高亮显示的输入表单
contenteditable="true": creating a syntax highlighted input form
我目前正在摆弄contenteditable="true"来创建一个语法突出显示的输入框。我正在编写一个jquery插件,它将<input>
标记转换为<div contenteditable="true">
容器。详细地说,它隐藏<input>
并在其后插入<div>
容器
在我看来,高亮显示函数只是一个简单的替换函数,用来高亮显示容器中的所有AND。这是我的小提琴:
http://jsfiddle.net/3Rhz8/2/
如果容器的内容发生了更改,则插件必须进行
- 将内容与输入的内容同步
- 更新语法高亮显示
在我的例子中,我只是在听keyup事件。现在,当我想要更新容器的语法高亮显示时,出现了一个问题。当通过.html()
或容器的innerHTML
属性更改输入时,光标状态将重置。有没有办法防止这种情况发生,或者我可以保存/恢复光标位置?
有一个完美的API用于保存和恢复光标位置:http://code.google.com/p/rangy/
它是细长的API。你所要做的就是
var savedSel = rangy.saveSelection();
保存光标位置,然后保存
rangy.restoreSelection(savedSel);
以恢复光标位置。您可以在此处阅读更多信息:http://code.google.com/p/rangy/wiki/SelectionSaveRestoreModule
相关文章:
- Markdown语法高亮显示未按预期工作
- 动态更新Ace Editor+Requirejs的语法高亮显示
- 如何在JavaScript中实现html语法高亮显示
- CKEditor代码片段插件在yii2框架中不做语法高亮
- 用于大型字符串的 Javascript 语法高亮显示器
- 语法高亮 Javascript 在 LyX 中,插入子程序列表>
- React:呈现语法高亮显示的代码块
- Javascript/jQuery如何将Load Spinner附加到语法高亮插件
- Sublime 3套装适用于Jade语法高亮、Linting、Auto Complete等
- 可以't使语法高亮显示在“;Ace”;文本编辑器
- Javascript库对OCaml代码的语法高亮显示有很好的支持
- JavaScript RegEx语法高亮显示
- 嵌入HTML的Orion文本编辑器中C代码的语法高亮显示
- AngularJS和Highlight.js的动态语法高亮显示
- 语法高亮显示正则表达式不工作,因为现有的正则表达式匹配
- 源代码语法高亮显示与代码折叠
- JavaScript语法高亮显示
- 用于代码语法高亮显示的Javascript库
- 如何用语法高亮显示用户在文本区域中输入的HTML代码
- 为什么在网页中添加语法高亮后滚动条不工作