1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 获取div编辑框 textarea input text的光标位置 兼容IE FF和Chrome办法介绍【javascript】

获取div编辑框 textarea input text的光标位置 兼容IE FF和Chrome办法介绍【javascript】

时间:2020-07-12 22:34:12

相关推荐

获取div编辑框 textarea input text的光标位置 兼容IE FF和Chrome办法介绍【javascript】

web前端|js教程

获取,div,位置

web前端-js教程

网上苦找2小时,全是不能兼容FF的,看来这种东西网上是搞不到现成的了,只能自己动手丰衣足食

现在发布出来,今后网上就有现成的供人使用了。

商品价格监控网站源码,ubuntu突然上下翻转,tomcat中文图形化管理,爬虫公众号数据,php如何设置调用数据库,seo如何查找lzw

为了省事,少量位置用了jquery 改原生JS也很方便,谁需要就请自己修改了。

欢迎各位路过高人拍板,欢迎各位留言提供改进代码。

又改进 兼容了Chrome 下面的代码已修改成最新版

上源码了

手机瀑布流源码,双系统ubuntu黑屏,scrapy监控爬虫状态,php database,服务seo教程lzw

js获取div编辑框,textarea,input text的光标位置,兼容FF和IE//去除左右所有空格

String.prototype.trim = function () {

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

}

function getPosition(element) {

var OsObject = "";

if (navigator.userAgent.indexOf("MSIE") > 0) {

OsObject = "MSIE";

}

if (navigator.userAgent.indexOf("Firefox") > 0) {

OsObject = "Firefox";

}

if (navigator.userAgent.indexOf("Safari") > 0) {

OsObject = "Safari";

}

if (navigator.userAgent.indexOf("Camino") > 0) {

OsObject = "Camino";

}

if (navigator.userAgent.indexOf("Gecko") > 0) {

OsObject = "Gecko";

}

if (navigator.userAgent.indexOf("Chrome") > 0) {

OsObject = "Chrome";

}

thinkphp企业站源码,vscode图片怎么是裂的,ubuntu rmvb,阿帕奇tomcat9.0.30,sqlite显示索引,外贸网页设计,黑客如何入侵服务器,在线qq插件代码,前端mvvc框架,长多腿爬虫,php上机,seo专业培训费用,springboot无条件查询,个人自媒体网站cms,手机网页 微信支付接口,手机网站静态模板下载,织梦后台使用教程,学生信息页面,access建立管理系统,企业小程序源码lzw

var result = 0;

if (!document.selection) { //非IE浏览器

var thisTagName = null;

if ($(element).attr("tagName") != "TEXTAREA" && $(element).attr("tagName") != "INPUT") {

if ($(element).attr("tagName") == "DIV" && $(element).attr("contenteditable") == "true") {

thisTagName = window.getSelection().anchorNode.parentElement.tagName;

} //出自/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

else {

thisTagName == null;

}

}

else {

if ($(element).attr("tagName") == "INPUT" && $(element).attr("type") == "text") {

thisTagName = window.getSelection().anchorNode.tagName;

}

else {

console.log(window.getSelection());

thisTagName = window.getSelection().anchorNode.tagName;

}

}

console.log(thisTagName);

if (thisTagName == "TEXTAREA" || thisTagName == "INPUT" || (thisTagName=="BODY"&&OsObject == "Chrome")) {

result = element.selectionStart

} //出自/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

else if (thisTagName != null) {

if (thisTagName == element.tagName) {

if (window.getSelection().anchorNode.textContent == $(element).text()) {

result = window.getSelection().anchorOffset;

}

else {

var currentIndex = window.getSelection().anchorOffset;

var txt = "";

var txtoo = window.getSelection().anchorNode.previousSibling;

while (txtoo != null) {

txt += txtoo.textContent;

txtoo = txtoo.previousSibling;

} //出自/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

result = txt.trim().length + currentIndex;

}

}

else {

var currentIndex = window.getSelection().anchorOffset;

var txt = "";

var txtoo = window.getSelection().anchorNode.parentElement.previousSibling;

while (txtoo != null) {

txt += txtoo.textContent;

txtoo = txtoo.previousSibling;

}

result = txt.trim().length + currentIndex;

}

} //出自/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

else {

return 0;

}

} else { //IE

var rng;

if ($(element).attr("tagName") == "TEXTAREA" || ($(element).attr("tagName") == "INPUT" && $(element).attr("type") == "text") || ($(element).attr("tagName") == "DIV" && $(element).attr("contenteditable") == "true")) {

element.focus();

rng = document.selection.createRange();

rng.moveStart(character, -element.innerText.length);

var text = rng.text;

for (var i = 0; i < element.innerText.length; i++) {

if (element.innerText.substring(0, i + 1) == text.substring(text.length - i - 1, text.length)) {

result = i + 1;

}

}

} //出自/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

else {

return 0;

}

}

return result;

}

function getValue(element) {

var pos = getPosition(element);

document.getElementById("pnum").value = pos;

}

#Div1, #Div2

{

width: 500px;

height: 100px;

border: solid 1px black;

}

<input type="text" value="Hello,wellcome to test! 你好,欢迎测试!" onmouseup="getValue(this)"

style="display: block" />

Hello,wellcome to test! 你好,欢迎测试! 注意源代码开闭合标记之间不能换行,否则统计错误!

一二三四五六七八九零 注意源代码开闭合标记之间不能换行,否则统计错误!注意div编辑框源码里面是嵌套有其他标签的,可以正常返回正确位置!

一二三四五六七八

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。