最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

處理文本部分內(nèi)容的TextRange對象應(yīng)用實(shí)例

 更新時(shí)間:2014年07月29日 09:48:49   投稿:whsnow  
TextRange是用來表現(xiàn)HTML元素中文字的對象,是一個(gè)用于處理JavaScript對象文本部分內(nèi)容的一個(gè)對象

因用戶要求方與TextRange對象結(jié)緣,用于處理JavaScript對象文本部分內(nèi)容的一個(gè)對象。

TextRange是用來表現(xiàn)HTML元素中文字的對象,雖然我們平時(shí)不太常用這個(gè)對象,可是它卻在IE4.0中就已提供了。不過TextRange提供的調(diào)用方法卻都比較晦澀,那么我們能拿它做些什么呢?
TextRange的傳統(tǒng)用途是對用戶在Web頁上用鼠標(biāo)圈選的文字內(nèi)容的操作,比如變化、刪除、新增等。但其經(jīng)典的用途卻是,在Web頁面中查找文字(這個(gè)比較簡單)和獲取輸入框光標(biāo)的位置。其中后者又有可以衍生出很多更有用的用途,比如:限制輸入的MaskTextBox,其核心技術(shù)點(diǎn)就是獲取輸入框的光標(biāo)位置,然后使用正則表達(dá)式判斷輸入內(nèi)容。還有我后面會(huì)介紹的"使用方向鍵在輸入框矩陣中自然的導(dǎo)航",核心技術(shù)點(diǎn)也是獲取輸入框中的光標(biāo)位置。

獲取輸入框中的光標(biāo)位置的整個(gè)代碼其實(shí)很短,只是這些對象和方法不太常用而已。

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>

這里說一下使用這個(gè)GetCursorPsn()方法后,會(huì)給輸入框操作帶來的副作用。

對于輸入框

Html代碼

<span style="font-size: medium;"><input type="text" onkeydown="GetCursorPsn(this)"></span>

它將不能再使用Shift+左右這兩個(gè)方向鍵來選擇文本;對于

Html代碼

<span style="font-size: medium;"><textarea onkeydown="GetCursorPsn(this)"></textarea></span>

,將不能再使用Shift+上下左右四個(gè)方向鍵來選擇文本。因?yàn)榇a在獲取了當(dāng)前光標(biāo)到文本的startPoint后,調(diào)用rng.collapse(false );會(huì) 改變文本筐內(nèi)文本的EditPoint。

1、滿足用戶要求代碼片段,使用上下左右四個(gè)鍵實(shí)現(xiàn)文本框的跳轉(zhuǎn),同時(shí)選擇其文本框內(nèi)容,從而方便用戶修改,代碼如下:

Js代碼

<span style="font-size: medium;">var range = $currentTextfield.createTextRange();//$currentTextfield為jQuery對象 

range.moveStart('character',0); 

range.select();</span>

以下是舶來的一片個(gè)人感覺還算不錯(cuò)的關(guān)于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"> 

河中魚類離奇死亡,下游居民頻染怪病,沿岸植物不斷變異,是殘留農(nóng)藥?還是生化攻擊?敬請關(guān)注今晚CCTV-10《科學(xué)探索》,即將播出的專題節(jié)目:《神秘的河邊洗腳人--中國男足》 

</textarea> 


<button id="btn">獲取選中值</button> 

<div id="show"></div> 

<script> 

String.prototype.trim = function() { 

return this.replace(/^\s+|\s+$/g, ""); 

} 

/* 方法一 FF下有點(diǎn)問題 */ 

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>

相關(guān)文章

  • JavaScript Table行定位效果

    JavaScript Table行定位效果

    近來有客戶要求用table顯示一大串?dāng)?shù)據(jù),由于滾動(dòng)后就看不到表頭,很不方便,所以想到這個(gè)效果。
    2009-05-05
  • js繪制一條直線并旋轉(zhuǎn)45度

    js繪制一條直線并旋轉(zhuǎn)45度

    這篇文章主要為大家詳細(xì)介紹了js繪制一條直線并旋轉(zhuǎn)45度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • iframe的基本介紹與使用

    iframe的基本介紹與使用

    本文將給大家詳細(xì)介紹一下iframe的基本介紹與使用,iframe(內(nèi)嵌框架)是 HTML 中一種用于將一個(gè)網(wǎng)頁嵌入到另一個(gè)網(wǎng)頁中的標(biāo)簽,它可以在一個(gè)頁面中顯示來自其他頁面的內(nèi)容,需要的朋友可以參考下
    2024-02-02
  • 基于JavaScript實(shí)現(xiàn)粒子流動(dòng)效果

    基于JavaScript實(shí)現(xiàn)粒子流動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)粒子流動(dòng)效果,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2023-09-09
  • js實(shí)現(xiàn)一個(gè)簡易計(jì)算器

    js實(shí)現(xiàn)一個(gè)簡易計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)一個(gè)簡易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • JavaScript 中斷請求幾種方案詳解

    JavaScript 中斷請求幾種方案詳解

    這篇文章主要介紹了JavaScript 中斷請求幾種方案詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • JS實(shí)現(xiàn)數(shù)字格式千分位相互轉(zhuǎn)換方法

    JS實(shí)現(xiàn)數(shù)字格式千分位相互轉(zhuǎn)換方法

    下面小編就為大家?guī)硪黄狫S實(shí)現(xiàn)數(shù)字格式千分位相互轉(zhuǎn)換方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 純前端使用ffmpeg實(shí)現(xiàn)視頻壓縮的具體方法及踩坑

    純前端使用ffmpeg實(shí)現(xiàn)視頻壓縮的具體方法及踩坑

    這篇文章主要給大家介紹了關(guān)于純前端使用ffmpeg實(shí)現(xiàn)視頻壓縮的具體方法及踩坑,要在前端使用FFmpeg進(jìn)行視頻壓縮,你可以使用FFmpeg的JavaScript,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • js小數(shù)運(yùn)算出現(xiàn)多位小數(shù)如何解決

    js小數(shù)運(yùn)算出現(xiàn)多位小數(shù)如何解決

    關(guān)于JavaScript小數(shù)進(jìn)行加、減、乘、除出現(xiàn)多位小數(shù)問題,自己研究了一下,而且作了相關(guān)的測試,收獲不少知識(shí)點(diǎn),需要的朋友可以參考下
    2015-10-10
  • JavaScript使用promise處理多重復(fù)請求

    JavaScript使用promise處理多重復(fù)請求

    處理重復(fù)請求的文章想必大家也看過了很多,大多數(shù)都是分為在response返回之前發(fā)現(xiàn)重復(fù)請求就return掉的和使用節(jié)流/防抖來間接規(guī)避用戶頻繁操作兩種版本的。本文主要介紹了JavaScript使用promise處理多重復(fù)請求,感興趣的可以了解一下
    2021-05-05

最新評論

体育| 新郑市| 新沂市| 泾源县| 同江市| 巧家县| 阿克苏市| 商水县| 漠河县| 响水县| 凤城市| 武强县| 中超| 察雅县| 庄浪县| 桂平市| 独山县| 绿春县| 汤阴县| 宁蒗| 喀什市| 吴旗县| 松桃| 新竹县| 化州市| 维西| 绿春县| 东台市| 林周县| 兴安盟| 会同县| 安平县| 望江县| 巩义市| 越西县| 额敏县| 新丰县| 景东| 隆化县| 舒城县| 泰和县|