簡體   English   中英

從 textarea 和可編輯的 div 中獲取整行

[英]get entire line from a textarea and editable div

在 textarea 內右鍵單擊給出整行 - 關於當前光標位置
我需要一個可編輯的 div - 但它不起作用
控制台為空,即存在空字符串
請幫忙

 $(document).on('contextmenu', '#txstory', function(e){ e.preventDefault(); var borderChars = ['\\n', '\\r', '\\t']; var tex = $(this).val(); var start = $(this)[0].selectionStart; var end = $(this)[0].selectionEnd; while (start > 0){ if(borderChars.indexOf(tex[start]) == -1){--start;} else{break;} } while(end < tex.length){ if(borderChars.indexOf(tex[end]) == -1){++end;} else{break;} } var str = tex.substr(start, end - start).trim(); console.log(str); }); $(document).on('contextmenu', '#ed', function(e){ e.preventDefault(); var borderChars = ['\\n', '\\r', '\\t']; var tex = $(this).text(); var start = $(this)[0].selectionStart; var end = $(this)[0].selectionEnd; while (start > 0){ if(borderChars.indexOf(tex[start]) == -1){--start;} else{break;} } while(end < tex.length){ if(borderChars.indexOf(tex[end]) == -1){++end;} else{break;} } var str = tex.substr(start, end - start).trim(); console.log(str); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <textarea class='btx' id='txstory'>lorem ipsum</textarea> <div class='ed' id='ed' contenteditable>dolor sit</div>

獲取用戶選擇的baseOffset ,然后遍歷每一行並檢查偏移量是否在行首索引和行尾索引的范圍內:

 $(document).on('contextmenu', '#txstory', function(e){ e.preventDefault(); var borderChars = ['\\n', '\\r', '\\t']; var tex = $(this).val(); var start = $(this)[0].selectionStart; var end = $(this)[0].selectionEnd; while (start > 0){ if(borderChars.indexOf(tex[start]) == -1){--start;} else{break;} } while(end < tex.length){ if(borderChars.indexOf(tex[end]) == -1){++end;} else{break;} } var str = tex.substr(start, end - start).trim(); console.log(str); }); $(document).on('contextmenu', '#ed', function(e){ var pos = document.getSelection().baseOffset; var lines = e.target.textContent.split("\\n") var line; var characs = 0; for(let i = 0; i < lines.length; i++){ if(characs <= pos && characs + lines[i].length >= pos){ line = lines[i]; break; } characs += lines[i].length } console.log(line) });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <textarea class='btx' id='txstory'>lorem ipsum</textarea> <div class='ed' id='ed' contenteditable>dolor sit</div>

從可編輯文件中插入文本格式<div>或 textarea 進入數據庫</div><div id="text_translate"><p>我目前正在為我自己的網站開發一個個人項目,我正在嘗試添加將格式化文本存儲到數據庫中的功能。 到目前為止,我所做的是能夠將字體從斜體更改為粗體作為示例,但我完全不知道如何將其傳遞到數據庫。</p><pre> &lt;style&gt; #fake_textarea { width: 100%; height: 200px; border: 1px solid red; } #jBold { font-weigth: bold; } #jItalic{ font-style:italic; } &lt;/style&gt; &lt;script src="/scripts/snippet-javascript-console.min.js?v=1"&gt;&lt;/script&gt; &lt;body&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt; &lt;button id="jBold"&gt;&lt;b&gt;B&lt;/b&gt;&lt;/button&gt;&lt;button id="jItalic"&gt;&lt;i&gt;I&lt;/i&gt;&lt;/button&gt; &lt;div id='fake_textarea' contenteditable&gt; Select some text and click the button to make it bold... &lt;br&gt;Or write your own text &lt;/div&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jBold').click(function() { document.execCommand('bold'); }); }); &lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jItalic').click(function() { document.execCommand('italic'); }); }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><p> 示例工作: <a href="https://codepen.io/goldenowl/pen/KKdZQxY" rel="nofollow noreferrer">codepen</a></p></div>

[英]Insert text format from an editable <div> or textarea into the database

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 從可編輯文件中插入文本格式<div>或 textarea 進入數據庫</div><div id="text_translate"><p>我目前正在為我自己的網站開發一個個人項目,我正在嘗試添加將格式化文本存儲到數據庫中的功能。 到目前為止,我所做的是能夠將字體從斜體更改為粗體作為示例,但我完全不知道如何將其傳遞到數據庫。</p><pre> &lt;style&gt; #fake_textarea { width: 100%; height: 200px; border: 1px solid red; } #jBold { font-weigth: bold; } #jItalic{ font-style:italic; } &lt;/style&gt; &lt;script src="/scripts/snippet-javascript-console.min.js?v=1"&gt;&lt;/script&gt; &lt;body&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt; &lt;button id="jBold"&gt;&lt;b&gt;B&lt;/b&gt;&lt;/button&gt;&lt;button id="jItalic"&gt;&lt;i&gt;I&lt;/i&gt;&lt;/button&gt; &lt;div id='fake_textarea' contenteditable&gt; Select some text and click the button to make it bold... &lt;br&gt;Or write your own text &lt;/div&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jBold').click(function() { document.execCommand('bold'); }); }); &lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jItalic').click(function() { document.execCommand('italic'); }); }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><p> 示例工作: <a href="https://codepen.io/goldenowl/pen/KKdZQxY" rel="nofollow noreferrer">codepen</a></p></div> 在textarea中保留outputed div中的換行符 從可編輯的內容 div 中獲取全部價值 從內容可編輯div中獲取已刪除的字符 逐行從textarea獲取文本? 如何從可在jQuery中編輯的div內容中檢索行尾? 如何在另一個文本區域中顯示文本區域和可編輯 div 中突出顯示的文本的 position? 在keypress上從textarea獲取最后一行 如何從流星中的可編輯div中選擇值而不是使用textarea.value? 新行在可編輯div中不起作用
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM