2017-10-11 86 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

相關問題