Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript contenteditable=";“真的”:创建语法突出显示的输入表单_Javascript_Jquery_Html_Dom_Plugins - Fatal编程技术网

Javascript contenteditable=";“真的”:创建语法突出显示的输入表单

Javascript contenteditable=";“真的”:创建语法突出显示的输入表单,javascript,jquery,html,dom,plugins,Javascript,Jquery,Html,Dom,Plugins,我目前正在摆弄contenteditable=“true”来创建一个语法突出显示的输入框。我正在编写一个jquery插件,它将标记转换为容器。详细地说,它隐藏了,并在其后插入容器 在我的小提琴中,highlight函数只是一个简单的替换函数,用于突出显示容器中的所有“和”。这是我的小提琴: 如果容器的内容发生更改,插件必须 将内容与输入内容同步 更新语法突出显示 在我的示例中,我只是在听keyup事件。现在,当我想更新容器的语法高亮显示时出现了一个问题。当通过.html()或容器的inne

我目前正在摆弄contenteditable=“true”来创建一个语法突出显示的输入框。我正在编写一个jquery插件,它将
标记转换为
容器。详细地说,它隐藏了
,并在其后插入
容器

在我的小提琴中,highlight函数只是一个简单的替换函数,用于突出显示容器中的所有“和”。这是我的小提琴:

如果容器的内容发生更改,插件必须

  • 将内容与输入内容同步
  • 更新语法突出显示

在我的示例中,我只是在听keyup事件。现在,当我想更新容器的语法高亮显示时出现了一个问题。当通过
.html()
或容器的
innerHTML
属性更改输入时,光标状态将重置。有什么方法可以防止这种情况发生,或者我可以保存/恢复光标位置吗?

有一个用于保存和恢复光标位置的完美API:

这是朗吉API。 你所要做的就是

var savedSel = rangy.saveSelection();
保存光标位置,然后

rangy.restoreSelection(savedSel);
恢复光标位置。你可以在这里阅读更多信息:

看看这篇文章