Rumah > Artikel > hujung hadapan web > Contoh aplikasi objek TextRange untuk memproses kemahiran teks content_javascript
Disebabkan perkaitan antara peminta pengguna dan objek TextRange, ia adalah objek yang digunakan untuk memproses bahagian teks objek JavaScript.
TextRange ialah objek yang digunakan untuk mewakili teks dalam elemen HTML Walaupun kami biasanya tidak menggunakan objek ini dengan kerap, ia sudah disediakan dalam IE4.0. Walau bagaimanapun, kaedah panggilan yang disediakan oleh TextRange agak kabur, jadi apa yang boleh kita lakukan dengannya?
Penggunaan tradisional TextRange adalah untuk mengendalikan kandungan teks yang pengguna bulatkan dengan tetikus pada halaman Web, seperti menukar, memadam, menambah, dsb. Tetapi penggunaan klasiknya adalah untuk mencari teks dalam halaman Web (ini agak mudah) dan mendapatkan kedudukan kursor kotak input. Yang terakhir boleh memperoleh lebih banyak kegunaan berguna, seperti MaskTextBox yang mengehadkan input teras teknikalnya ialah untuk mendapatkan kedudukan kursor kotak input, dan kemudian menggunakan ungkapan biasa untuk menentukan kandungan input. Terdapat juga "navigasi semula jadi dalam matriks kotak input menggunakan kekunci anak panah" yang akan saya perkenalkan kemudian.
Keseluruhan kod untuk mendapatkan kedudukan kursor dalam kotak input sebenarnya sangat pendek, tetapi objek dan kaedah ini tidak biasa digunakan.
Kod 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>
Di sini kita akan bercakap tentang kesan sampingan menggunakan kaedah GetCursorPsn() pada operasi kotak input.
Untuk kotak input
Kod html
<span style="font-size: medium;"><input type="text" onkeydown="GetCursorPsn(this)"></span>
Ia tidak lagi boleh menggunakan kekunci Shift dan anak panah kiri untuk memilih teks untuk
Kod html
<span style="font-size: medium;"><textarea onkeydown="GetCursorPsn(this)"></textarea></span>
, anda tidak lagi boleh menggunakan empat kekunci anak panah Shift, atas, bawah, kiri dan kanan untuk memilih teks. Kerana selepas kod memperoleh titik permulaan kursor semasa ke teks, memanggil rng.collapse(false);
1. Coretan kod untuk memenuhi keperluan pengguna Gunakan empat kekunci atas, bawah, kiri dan kanan untuk melompat ke kotak teks dan pilih kandungan kotak teks pada masa yang sama, untuk memudahkan pengubahsuaian pengguna. . Kodnya adalah seperti berikut:
Kod Js
<span style="font-size: medium;">var range = $currentTextfield.createTextRange();//$currentTextfield为jQuery对象 range.moveStart('character',0); range.select();</span>
Berikut ialah artikel yang diimport tentang TextRange yang secara peribadi saya rasa agak bagus:
Kod 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>