我正在努力让一个textarea由多人编辑 - 使用mobwrite。 mobwrite在其工作中使用diff-match-patch。它可以很好地同步各种人之间的文本区域。现在,我想要的是突出显示来自不同用户的不同颜色的补丁。
为了做到这一点,我将以某种方式着色一个"范围的文本"在textarea? (直接编辑textarea本身!)
我已经阅读了两个语法高亮显示器 - codemirror和editarea。它们具有用于获取文本范围的开始和结束的有用功能"。但是,我无法在不加载大量不必要的JavaScript代码的情况下找到一种着色此选择范围的方法。
请建议我如何实现"为textarea"中的一系列文本着色。谢谢。
答案 0 :(得分: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>