1

我正在努力使文本区域可由多人编辑 - 使用 mobwrite。mobwrite 在其工作中使用 diff-match-patch。它在不同人之间同步 textarea 方面做得很好。现在,我想要用不同颜色突出显示来自不同用户的补丁。

为此,我将不得不以某种方式为文本区域中的“文本范围”着色?(当然,直接编辑 textarea 本身!)

我已经阅读了关于两个语法荧光笔 - codemirror 和 editarea。它们具有获取“文本范围”的开始和结束的有用功能。但是,如果不加载很多不必要的 javascript 代码,我找不到一种方法来为这个选择范围着色。

请建议我如何实现“在文本区域中为一系列文本着色”。谢谢你。

4

1 回答 1

0

我知道的一种方法是将 textarea 的不透明度设置为 0 并在其后面放置一个 div 。它必须具有相同的宽度/高度/位置/文本大小/等。然后你只需要将所有输入从 textarea 发送到 div。完成后,您将能够在页面上放置按钮以启动 javascript 函数,该函数检索选定的文本范围,然后基于此更改 div。

这样做的一个问题是用户不会看到他们的文本被突出显示,因此需要对其进行模拟。


这应该让你开始:

<textarea onKeyDown="document.getElementById('ta_disp').innerHTML = this.value;" style="z-index: 100; position: absolute; left: 0; top: 0; width: 300px; height: 100px; opacity: 0;-moz-opacity: 0;filter: alpha(opacity=0); outline: 1px solid #f00;"></textarea>
<div id="ta_disp" style="z-index: 99; position: absolute; left: 0; top: 0; width: 300px; height: 100px; outline: 1px solid #f00;"></div>
于 2012-03-16T11:46:07.187 回答