我正在製作一個處理化學公式的小型JavaScript Web應用程序,因此我需要允許用戶輸入上標。對用戶來說最簡單的事情就是讓文本編輯器在按^時切換到上標。我怎樣才能做到這一點與HTML textarea?HTML輸入中的上標和下標
-1
A
回答
0
我會建議利用現有的解決方案。看看MathQuill。
關於從頭創建自己的這樣的系統,沒有簡單的解決方案。您需要進行獨立研究和實驗,並返回Stack Overflow以獲得更具體的問題。
0
檢查這個小提琴這裏從功能借款:fiddle
用法:要鍵入標,按^ - >鍵入上標 - >按Esc,上標將出現在textarea中。
$(document).ready(function() {
var temp = {}; // store keypresses here
var current_value = "";
$("#text_area").keydown(function(e) {
temp[e.which] = true;
});
$('#text_area').keyup(function(e) {
if (e.keyCode == 27 && current_value != "") {
var length_1 = current_value.length;
var length_without_sup = length_1 - 5;
var substr_superstring = $('#text_area').val().substr(length_without_sup);
var current_text_2 = current_value + substr_superstring;
current_text_2 = current_text_2 + "</sup>";
$('#text_area').val(current_text_2);
$('#text_area').superScript();
}
var flag_shift = false;
var flag_super = false;
for (var key in temp) {
if (key == 16) {
flag_shift = true;
} else if (key == 54) {
flag_super = true;
}
}
if (flag_shift == true && flag_super == true) {
var current_text = $('#text_area').val();
current_text_2 = current_text.substr(0, current_text.length - 1);
current_text_2 = current_text_2 + "<sup>";
$('#text_area').val(current_text_2);
current_value = hide_superscript_tag();
}
delete temp[e.which];
});
});
function hide_superscript_tag() {
var current_value = $('#text_area').val();
current_value_2 = current_value.substr(0, current_value.length - 5);
$('#text_area').val(current_value_2);
return current_value;
}
$.fn.superScript = function() {
var chars = '+−=()AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸqrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ',
sup = '⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲqʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ';
return this.each(function() {
this.value = this.value.replace(/<sup[^>]*>(.*?)<\/sup>/g, function(x) {
var str = '',
txt = $.trim($(x).unwrap().text());
for (var i = 0; i < txt.length; i++) {
var n = chars.indexOf(txt[i]);
str += (n != -1 ? sup[n] : txt[i]);
}
return str;
});
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="text_area">
</textarea>
相關問題
- 1. HTML表和輸入標籤
- 2. Jsoup爲下標和上標解析html
- 3. 輸入中BLock HTML和javascript標記
- 4. jQuery和HTML的輸入標籤
- 5. 上標輸入
- 6. 輸入HTML標記的佔位符下標
- 7. 如何在html文本輸入標籤中使用上標?
- 8. 允許HTML輸入標記和值wysihtml5
- 9. HTML定位標籤和輸入字段
- 10. HTML對齊標籤和輸入字段
- 11. C中的標準輸入和輸出標準輸入和輸出
- 12. HTML輸入標籤,無法輸入
- 13. WP7中的上標和下標
- 14. R中的上標和下標
- 15. ylab()函數中的上標和下標
- 16. 鼠標輸入/鼠標離開和鼠標左鍵按下
- 17. 輸入字段中的HTML標記
- 18. 關於html輸入標記
- 19. HTML輸入多個標記
- 20. HTML輸入標籤onSubmit
- 21. PHP MySQL輸入HTML標籤
- 22. 輸入標記HTML或不
- 23. MathML - 左下標和上標
- 24. UITableViewCell上標和下標
- 25. 點擊「爲」兩個錨標記和標籤輸入標籤上
- 26. 從html輸入中刪除標籤sed
- 27. 在html中輸入佔位符標記
- 28. Codeigniter從輸入中剝離HTML標籤
- 29. Google素材圖標在HTML輸入中?
- 30. 錯誤的目標時,按下HTML標籤中的html標籤
歡迎堆棧溢出。嘗試並提供一些你已經嘗試過的代碼示例,人們更願意並且能夠更好地幫助你 – blackmind
你不能。您只能將整個textarea內容作爲一個格式。 'contentEditable'是你可能想要考慮的東西。 – CBroe
你可以有一個div *渲染*輸入的公式,顯示上標以響應textarea的變化,但保持textarea本身爲純文本。想必您無論如何都需要下標作爲化學公式。 –