2012-04-27 130 views

回答

1

一个https://github.com/cloudhead/hijs是有用的我一直希望拥有textarea元素添加了功能,如代码高亮,同时还保持为简单的可编辑文本区域。我在这里进行了一些尝试:http://www.dcc.uchile.cl/~jmunoz/

它远不是最优的,而且很麻烦,但仍然...它允许使用任意规则突出显示文本。我曾经有一个工作版本,允许改变文本颜色(而不仅仅是背景),但它有一些问题。

基本上我所做的是添加一个div叠加层,其文本区域的内容和字体样式与透明字体完全相同。里面的文字具有span元件包裹特定词语和短语可具有特殊的背景,边框等

为了允许不同的字体颜色,我试图使所述textarea文本透明的,而示出了覆盖div文本。那里的主要问题是光标也变得透明。

我会说使用带editablecontent的div看起来是一个更好的选择。

+0

这就是我正在寻找的。我会玩你的代码一段时间。 – Rahul 2012-05-07 12:31:28

+0

我还能得到赏金吗?大声笑。但是,真的,不要太信任这些代码,那时我是一个经验不足的程序员。你可以随心所欲地做任何事情,但如果我是你,我只能用它作为参考并从头开始构建它。 – 2012-05-07 18:19:43

+0

我希望你能得到大声笑。我从头开始创建,它只是我需要一些简单的基本代码来开始,并为它创建一个合适的库:) – Rahul 2012-05-08 08:00:02

0

由于文本区域不能包含标记,因此不能高亮显示本身。我用于内联拼写检查器的方法是将拼写错误的单词覆盖div。这是可能的,因为可以在文本中获取单词的x和y位置。

但是,最好将textarea覆盖一个内容可编辑的div,这将允许您将内容包裹在span中,然后应用样式。

1

我认为你可以使用带有content editable属性的div或section标签。在这个div或者section里面,你可以为higlight函数,变量等使用额外的标记。但是这个属性只能在支持html5属性内容的新浏览器中编辑。这里是一个demo

如果你需要一个简单的JS highligter,可能这对你的任务