2017-10-11 91 views
-1

我需要创建一个假输入,以便我可以将内容更改为html元素。我如何在html和javascript中创建假输入

Desmos应用程序,你可以键入类似:a^b,它会在HTML更改为b女巫:a<sup>b</sup

也看到,确实语法高亮显示,自动完成,等Monaco Editor

我熟悉contenteditable属性,但在演示他们不使用它。

在这两个应用程序中,它们实现假输入而不使用文本区域 ,隐藏输入或contenteditable属性。

所以我的问题是如何实现这种行为,并实现假输入,onblur,oncopy等处理函数的虚假输入 。

+0

看起来好像他们有元素的聚焦状态,然后一个的onkeyup功能,将读取你的按键,并根据你按什么,他们将属性添加到一个跨度踢(这在必须填写html) – Pete

回答

0

您可以使用keydown/keyup/keypress事件来编辑伪造字段中的内容。 事情是这样的:

$(document).click(function (e) { 
    if($(e.target).is("#your_editor")) { 
     // editor area focused 
     if($(this).hasClass("focused")) { 
      return; 
     } 
     $(this).addClass("focused"); 
    } else { 
     // editor area is not focused 
     $("#your_editor").removeClass("focused"); 
    } 
}); 

$(document).keydown(function (e) { 
    // some key are pressed 
    if($("#your_editor").hasClass("focused")) { 
     // do something with e.keyCode 
    } 
}); 
+0

顺便说一下,摩纳哥编辑正在使用textareas! – Sergey

+0

没错,直到现在才看到。 它正在存储编辑器的原始值。 但我仍然不能想出一个方法来实施事件的权利。 – kfir2142

+0

您可以捕捉每行的点击,而不是将textarea添加到光标位置。 – Sergey

相关问题