處理文字部分內容的TextRange物件應用實例_javascript技巧
因使用者要求方與TextRange物件結緣,用於處理JavaScript物件文字部分內容的一個物件。
TextRange是用來表現HTML元素中文字的對象,雖然我們平常不太常用這個對象,但它卻在IE4.0就已提供了。不過TextRange提供的呼叫方法卻都比較晦澀,那我們可以拿它做些什麼呢?
TextRange的傳統用途是對使用者在Web頁上以滑鼠圈選的文字內容的操作,例如變化、刪除、新增等。但其經典的用途卻是,在Web頁面中找出文字(這個比較簡單)和取得輸入框遊標的位置。其中後者有可以衍生出許多更有用的用途,例如:限制輸入的MaskTextBox,其核心技術點就是取得輸入框的遊標位置,然後使用正規表示式判斷輸入內容。還有我後面會介紹的"使用方向鍵在輸入框矩陣中自然的導航",核心技術點也是取得輸入框中的遊標位置。
取得輸入框中的遊標位置的整個程式碼其實很短,只是這些物件和方法不太常用而已。
Js代碼
<span style="font-size: medium;"><script language="javascript"> function GetCursorPsn(txb) { var slct = document.selection; var rng = slct.createRange(); txb.select(); rng.setEndPoint("StartToStart", slct.createRange()); var psn = rng.text.length; rng.collapse(false); rng.select(); return psn; } </script></span>
這裡說一下使用這個GetCursorPsn()方法後,會為輸入框操作帶來的副作用。
對於輸入框
Html代碼
<span style="font-size: medium;"><input type="text" onkeydown="GetCursorPsn(this)"></span>
它將無法再使用Shift 左右這兩個方向鍵來選取文字;對於
Html代碼
<span style="font-size: medium;"><textarea onkeydown="GetCursorPsn(this)"></textarea></span>
,將無法再使用Shift 上下左右四個方向鍵來選取文字。因為程式碼在取得了目前遊標到文字的startPoint後,呼叫rng.collapse(false );會 改變文字框內文字的EditPoint。
1、滿足使用者要求程式碼片段,使用上下左右四個鍵實現文字方塊的跳轉,同時選擇其文字方塊內容,從而方便使用者修改,程式碼如下:
Js代碼
<span style="font-size: medium;">var range = $currentTextfield.createTextRange();//$currentTextfield为jQuery对象 range.moveStart('character',0); range.select();</span>
以下是舶來的一片個人感覺還算不錯的關於TextRange的文章:
Html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> new document </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> body { font-size:12px; } #show { background-color:#CCFF99; } </style> </head> <body> <textarea id="content" cols="30" rows="10"> 河中鱼类离奇死亡,下游居民频染怪病,沿岸植物不断变异,是残留农药?还是生化攻击?敬请关注今晚CCTV-10《科学探索》,即将播出的专题节目:《神秘的河边洗脚人--中国男足》 </textarea> <button id="btn">获取选中值</button> <div id="show"></div> <script> String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); } /* 方法一 FF下有点问题 */ function getSelectText() { try{ // IE: document.selection.createRange() W3C:window.getSelection() var selectText = (document.selection && document.selection.createRange )? document.selection.createRange().text : window.getSelection().toString(); if(selectText != null && selectText.trim() != ""){ return selectText; } }catch(err){} } /* 方法二 */ function getSelectText2(id) { var t = document.getElementById(id); if(window.getSelection) { if(t.selectionStart != undefined && t.selectionEnd != undefined) { return t.value.substring(t.selectionStart, t.selectionEnd); } else { return ""; } } else { return document.selection.createRange().text; } } document.getElementById('btn').onclick = function() { document.getElementById('show').innerHTML = getSelectText2('content'); } </script> </body> </html>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。
