javascript textarea光標(biāo)定位方法(兼容IE和FF)
更新時間:2011年03月12日 13:17:07 作者:
主要是實(shí)現(xiàn)textarea中光標(biāo)的定位方法,考慮到多瀏覽器的兼容性,需要的朋友可以參考下。
今天在做一個博客轉(zhuǎn)發(fā)的功能,就像新浪微薄轉(zhuǎn)播的那個功能一樣,有一個textArea,就是我們發(fā)微薄的那個框,別人的微薄都有一個轉(zhuǎn)發(fā)的按鈕,當(dāng)我們點(diǎn)擊這個轉(zhuǎn)發(fā)按鈕的時候,他的微薄就會進(jìn)入到textArea中,看起來很簡單的文本框賦值,其實(shí)難點(diǎn)就在于,這時候的光標(biāo)是定位在最前面的。
于是搜索了baidu,google,找到了
IE下面的方法
var tea=document.getElementById("文本框的ID");
var txt=textArea.createTextRange();
txt.moveEnd("character",0-tempText.text.length);
txt.select();
但是這個方法只有在IE的瀏覽器下面才可用,于是通過網(wǎng)絡(luò)搜索找到了一篇博客
google了N久,嘗試了各種方法,大多不是不支持IE就是IE ONLY,最終師父告訴我一個老頁面里面有這個功能,找到那段代碼試了下,IE和FF都成功了!
共享一下代碼
function locatePoint(){
var aCtrl = document.getElementById("txtContent");
if (aCtrl.setSelectionRange) {
setTimeout(function() {
aCtrl.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
aCtrl.focus();
}, 0);
}else if (aCtrl.createTextRange) {
var textArea=document.getElementById("txtContent");
var tempText=textArea.createTextRange();
tempText.moveEnd("character",0-tempText.text.length);
tempText.select();
}
}
找到了FF下面的方法
var tea=document.getElementById("文本框的ID");
tea.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
tea.focus();
所以兼容的方法我們可以用一個if加入判斷,整合方法如下,也正如那個帖子里的一樣
html部分
<input id="tea" type="text" size="100" value="">
<button onclick="xx()">轉(zhuǎn)發(fā)</button>
JS部分
<script language="javascript">
var tea = document.getElementById("tea");
function locatePoint(){
if (tea.setSelectionRange) {
setTimeout(function() {
tea.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
tea.focus();
}, 0);
}else if (tea.createTextRange) {
var txt=tea.createTextRange();
txt.moveEnd("character",0-txt.text.length);
txt.select();
}
}
function xx(){
tea.value = 'bbb';
locatePoint();
}
</script>
于是搜索了baidu,google,找到了
IE下面的方法
復(fù)制代碼 代碼如下:
var tea=document.getElementById("文本框的ID");
var txt=textArea.createTextRange();
txt.moveEnd("character",0-tempText.text.length);
txt.select();
但是這個方法只有在IE的瀏覽器下面才可用,于是通過網(wǎng)絡(luò)搜索找到了一篇博客
google了N久,嘗試了各種方法,大多不是不支持IE就是IE ONLY,最終師父告訴我一個老頁面里面有這個功能,找到那段代碼試了下,IE和FF都成功了!
共享一下代碼
復(fù)制代碼 代碼如下:
function locatePoint(){
var aCtrl = document.getElementById("txtContent");
if (aCtrl.setSelectionRange) {
setTimeout(function() {
aCtrl.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
aCtrl.focus();
}, 0);
}else if (aCtrl.createTextRange) {
var textArea=document.getElementById("txtContent");
var tempText=textArea.createTextRange();
tempText.moveEnd("character",0-tempText.text.length);
tempText.select();
}
}
找到了FF下面的方法
復(fù)制代碼 代碼如下:
var tea=document.getElementById("文本框的ID");
tea.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
tea.focus();
所以兼容的方法我們可以用一個if加入判斷,整合方法如下,也正如那個帖子里的一樣
html部分
復(fù)制代碼 代碼如下:
<input id="tea" type="text" size="100" value="">
<button onclick="xx()">轉(zhuǎn)發(fā)</button>
JS部分
復(fù)制代碼 代碼如下:
<script language="javascript">
var tea = document.getElementById("tea");
function locatePoint(){
if (tea.setSelectionRange) {
setTimeout(function() {
tea.setSelectionRange(0, 0); //將光標(biāo)定位在textarea的開頭,需要定位到其他位置的請自行修改
tea.focus();
}, 0);
}else if (tea.createTextRange) {
var txt=tea.createTextRange();
txt.moveEnd("character",0-txt.text.length);
txt.select();
}
}
function xx(){
tea.value = 'bbb';
locatePoint();
}
</script>
您可能感興趣的文章:
- 把textarea中字符串里含有的回車換行替換成<br>的javascript代碼
- JS控制文本框textarea輸入字?jǐn)?shù)限制的方法
- javascript textarea字?jǐn)?shù)限制
- TextArea設(shè)置MaxLength屬性最大輸入值的js代碼
- JavaScript判斷textarea值是否為空并給出相應(yīng)提示
- JavaScript中統(tǒng)計(jì)Textarea字?jǐn)?shù)并提示還能輸入的字符
- 在textarea中顯示html頁面的javascript代碼
- JavaScript 獲取/設(shè)置光標(biāo)位置,兼容Input&&TextArea
- 用JavaScript限制textarea輸入長度 (For: IE、Firefox ...)[
- 關(guān)于js對textarea換行符的處理方法淺析
相關(guān)文章
微信小程序連接服務(wù)器展示MQTT數(shù)據(jù)信息的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序連接服務(wù)器展示MQTT數(shù)據(jù)信息的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
js+html實(shí)現(xiàn)周歲年齡計(jì)算器
這篇文章主要為大家詳細(xì)介紹了js+html實(shí)現(xiàn)周歲年齡計(jì)算器的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06
JS跨域之window.name實(shí)現(xiàn)的跨域數(shù)據(jù)傳輸
這篇文章主要介紹了JS跨域之window.name實(shí)現(xiàn)的跨域數(shù)據(jù)傳輸,需要的朋友可以參考下2022-01-01
JavaScript實(shí)現(xiàn)一個多少秒后自動跳轉(zhuǎn)的頁面(案例代碼)
最近遇到這樣一個需求是用js簡單實(shí)現(xiàn)一個多少秒后自動跳轉(zhuǎn)的頁面,實(shí)現(xiàn)代碼非常簡單,對js自動跳轉(zhuǎn)頁面相關(guān)知識感興趣的朋友一起看看吧2023-01-01
微信小程序 wx.getUserInfo引導(dǎo)用戶授權(quán)問題實(shí)例分析
這篇文章主要介紹了微信小程序 wx.getUserInfo引導(dǎo)用戶授權(quán)問題,結(jié)合實(shí)例形式分析了微信小程序使用wx.getUserInfo引導(dǎo)用戶授權(quán)問題的具體操作步驟與實(shí)現(xiàn)方法,需要的朋友可以參考下2020-03-03

