Javascript 突出显示/格式化文本区域

Javascript 突出显示/格式化文本区域,javascript,jquery,html,diff,tinymce,Javascript,Jquery,Html,Diff,Tinymce,我希望在保留空白的网页中实现一个livediff 我曾经在IE6中使用TinyMCE和JQuery的组合做过类似的事情,这是该项目所需要的,但它没有保留空格。本来不应该,但我没有添加任何东西让它这么做,它只是这么做了。TinyMCE在处理纯文本时并不理想,TinyMCE是一个支持富文本的所见即所得风格编辑器。它的大部分功能没有被使用,很难禁用 我已经浏览了上面列出的大多数项目。EditArea似乎很有希望,但我似乎无法确定哪些元素实际用于显示文本 $'frame\u modified'。内容。查

我希望在保留空白的网页中实现一个livediff

我曾经在IE6中使用TinyMCE和JQuery的组合做过类似的事情,这是该项目所需要的,但它没有保留空格。本来不应该,但我没有添加任何东西让它这么做,它只是这么做了。TinyMCE在处理纯文本时并不理想,TinyMCE是一个支持富文本的所见即所得风格编辑器。它的大部分功能没有被使用,很难禁用

我已经浏览了上面列出的大多数项目。EditArea似乎很有希望,但我似乎无法确定哪些元素实际用于显示文本

$'frame\u modified'。内容。查找'editor'。文本

显示大量的行信息12345678910112等,以及光标所在的行,但不显示其余的行。我还没有弄明白如何应用/修改与之相关的样式

假设用户输入foo,我想将其包装起来,使其动态显示为foo。获得这种功能最简单的解决方案是什么


IE8是该项目的目标浏览器。

您可以在自己的插件中对onKeyDown事件执行一些操作。如果光标已在新的跨距中,请添加刚刚键入的字符,否则请使用输入的字符创建新的跨距。大概是这样的:

ed.onKeyDown.add(function(ed,evt){
  char = getChar(evt.keyCode); // your function to get the character to be inserted depending on evt.keyCode

  // if span already exists
  node = ed.selection.getNode();
  if (node.nodeName.toLowerCase() == 'span' && node.className == 'myclass'){
     node.innerHTML += char;
  }
  // new span
  else {
    doc = ed.getDoc();
    new_element = doc.createElement('span');
    new_element.className = "myclass";
    new_element.innerHTML = char;
    tinymce.activeEditor.mceInsertContent(new_element);
  }
})

我要试试这个,看看效果如何。不过,这可能是一段时间,因为我要休假到星期一,再过几个小时就要开始了如果我能让这对我来说适用于空白和所有内容,在我接受这个答案之前,我希望对代码进行一些编辑。对char/node/doc/new_元素的var声明,===而不是==用于字符串比较,我现在看到的就是末尾的分号。