javascript textarea光标定位方法(兼容IE和FF)

 更新时间:2011年03月12日 13:17:07   作者:  
主要是实现textarea中光标的定位方法,考虑到多浏览器的兼容性,需要的朋友可以参考下。
今天在做一个博客转发的功能,就像新浪微薄转播的那个功能一样,有一个textArea,就是我们发微薄的那个框,别人的微薄都有一个转发的按钮,当我们点击这个转发按钮的时候,他的微薄就会进入到textArea中,看起来很简单的文本框赋值,其实难点就在于,这时候的光标是定位在最前面的。

于是搜索了baidu,google,找到了
IE下面的方法
复制代码 代码如下:

var tea=document.getElementById("文本框的ID");
var txt=textArea.createTextRange();
txt.moveEnd("character",0-tempText.text.length);
txt.select();

但是这个方法只有在IE的浏览器下面才可用,于是通过网络搜索找到了一篇博客
google了N久,尝试了各种方法,大多不是不支持IE就是IE ONLY,最终师父告诉我一个老页面里面有这个功能,找到那段代码试了下,IE和FF都成功了!
共享一下代码
复制代码 代码如下:

function locatePoint(){
var aCtrl = document.getElementById("txtContent");
if (aCtrl.setSelectionRange) {
setTimeout(function() {
aCtrl.setSelectionRange(0, 0); //将光标定位在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); //将光标定位在textarea的开头,需要定位到其他位置的请自行修改
tea.focus();

所以兼容的方法我们可以用一个if加入判断,整合方法如下,也正如那个帖子里的一样
html部分
复制代码 代码如下:

<input id="tea" type="text" size="100" value="">
<button onclick="xx()">转发</button>

JS部分
复制代码 代码如下:

<script language="javascript">
var tea = document.getElementById("tea");
function locatePoint(){
if (tea.setSelectionRange) {
setTimeout(function() {
tea.setSelectionRange(0, 0); //将光标定位在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>

相关文章

  • JS实现时间选择器

    JS实现时间选择器

    这篇文章主要为大家详细介绍了JS实现时间选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 微信小程序连接服务器展示MQTT数据信息的实现

    微信小程序连接服务器展示MQTT数据信息的实现

    这篇文章主要介绍了微信小程序连接服务器展示MQTT数据信息的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • JavaScript实现无限轮播效果

    JavaScript实现无限轮播效果

    这篇文章主要介为大家详细绍了JavaScript实现无限轮播效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • js+html实现周岁年龄计算器

    js+html实现周岁年龄计算器

    这篇文章主要为大家详细介绍了js+html实现周岁年龄计算器的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • JS跨域之window.name实现的跨域数据传输

    JS跨域之window.name实现的跨域数据传输

    这篇文章主要介绍了JS跨域之window.name实现的跨域数据传输,需要的朋友可以参考下
    2022-01-01
  • IE与FireFox中的childNodes区别

    IE与FireFox中的childNodes区别

    Javascript中,相信大家都试过用getElementsByTagName和childNodes来实现对节点的遍历
    2011-10-10
  • JavaScript实现一个多少秒后自动跳转的页面(案例代码)

    JavaScript实现一个多少秒后自动跳转的页面(案例代码)

    最近遇到这样一个需求是用js简单实现一个多少秒后自动跳转的页面,实现代码非常简单,对js自动跳转页面相关知识感兴趣的朋友一起看看吧
    2023-01-01
  • 继承行为在 ES5 与 ES6 中的区别详解

    继承行为在 ES5 与 ES6 中的区别详解

    这篇文章主要介绍了继承行为在 ES5 与 ES6 中的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 模仿JQuery sortable效果 代码有错但值得看看

    模仿JQuery sortable效果 代码有错但值得看看

    模仿JQuery sortable效果 代码有错但值得看看,因为时间关系,需要的朋友可以参考下。
    2009-11-11
  • 微信小程序 wx.getUserInfo引导用户授权问题实例分析

    微信小程序 wx.getUserInfo引导用户授权问题实例分析

    这篇文章主要介绍了微信小程序 wx.getUserInfo引导用户授权问题,结合实例形式分析了微信小程序使用wx.getUserInfo引导用户授权问题的具体操作步骤与实现方法,需要的朋友可以参考下
    2020-03-03

最新评论