찾다
웹 프론트엔드JS 튜토리얼div 편집 상자, 텍스트 영역, 입력 텍스트의 커서 위치를 가져옵니다. IE, FF 및 Chrome_javascript 기술과 호환되는 방법을 소개합니다.

2시간 동안 온라인으로 검색해 보니 FF와 호환되는 게 하나도 없네요. 이런 건 온라인에서 쉽게 구할 수 없는 것 같아서 제가 직접 만들어 봐야 겠네요. 사람들이 미래에 사용할 수 있도록.

문제를 줄이기 위해 jquery를 몇몇 곳에서 사용하고 있는데, 네이티브 JS를 수정하는 것도 매우 편리합니다. 필요한 경우 직접 수정해 보세요.
누구나 전문가의 곁을 지나 결정을 내리실 수 있으며, 개선된 코드를 제공하겠다는 메시지를 남겨주셔도 좋습니다.
개선되어 Chrome과 호환됩니다. 다음 코드는 최신 버전으로 수정되었습니다
소스코드가 있습니다

코드 복사 코드는 다음과 같습니다.




js는 div 편집 상자, 텍스트 영역, 입력을 가져옵니다. FF 및 IE와 호환되는 텍스트의 커서 위치
;script type="text/javascript">
//왼쪽 및 오른쪽 공백 모두 제거
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"
}

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;
} //http://www.cnblogs.com/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
} //http://www.cnblogs.com/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 = ""; txtoo = window.getSelection().anchorNode.previousSibling;
while (txtoo != null) {
txt = txtoo.textContent;
txtoo = txtoo.previousSibling; //www.cnblogs.com/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.previousSibling; }
result = txt.trim().length currentIndex;
}
} //http://www.cnblogs.com/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 if (element.innerText.substring(0, i 1) == text.substring(text.length - i - 1, text.length)) {
result = i
}
}
} //From http://www.cnblogs.com/ahjesus 작성자의 노고를 존중하며, 전재 시 출처를 밝혀주시면 감사하겠습니다!
else {
return 0;
}
}
결과 반환
}

function getValue(element) {
var pos = getPosition(element );
document.getElementById("pnum").value = pos;





하나 둘 셋 넷 다섯 식스78>



성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在Python中获取文件扩展名?如何在Python中获取文件扩展名?Sep 08, 2023 pm 01:53 PM

Python中的文件扩展名是附加在文件名末尾的后缀,用于表示文件的格式或类型。它通常由三个或四个字符组成,文件名后跟一个句点,例如“.txt”或“.py”。操作系统和程序利用文件扩展名来确定文件的类型以及应如何处理它。被识别为纯文本文件。Python中的文件扩展名在读取或写入文件时至关重要,因为它建立了文件格式以及读取和写入数据的最佳方法。例如,“.csv”文件扩展名是读取CSV文件时使用的扩展名,而csv模块则用于处理该文件。Python中获取文件扩展名的算法在Python中操作文件名字符串来

使用math.Max函数获取一组数中的最大值使用math.Max函数获取一组数中的最大值Jul 24, 2023 pm 01:24 PM

使用math.Max函数获取一组数中的最大值在数学和编程中,经常需要找出一组数中的最大值。在Go语言中,我们可以使用math包中的Max函数来实现这个功能。本文将介绍如何使用math.Max函数来获取一组数中的最大值,并提供相应的代码示例。首先,我们需要导入math包。在Go语言中,导入包可以使用import关键字,如下所示:import"mat

如何在Java中获取LinkedHashSet的最后一个元素?如何在Java中获取LinkedHashSet的最后一个元素?Aug 27, 2023 pm 08:45 PM

从Java中的LinkedHashSet中检索最后一个元素意味着检索其集合中的最后一个元素。尽管Java没有内置方法来帮助检索LinkedHashSets中的最后一个项,但存在多种有效的技术,可以提供灵活性和便利性,有效地检索此最后一个元素而不破坏插入顺序-这是Java开发人员必须在其应用程序中有效处理的问题。通过将这些策略有效地应用于他们的软件项目中,他们可以实现满足此要求的最佳解决方案LinkedHashSetLinkedHashSet是Java中的一种高效数据结构,它结合了HashSet和

Java程序获取给定文件的大小(以字节、千字节和兆字节为单位)Java程序获取给定文件的大小(以字节、千字节和兆字节为单位)Sep 06, 2023 am 10:13 AM

文件的大小是特定文件在特定存储设备(例如硬盘驱动器)上占用的存储空间量。文件的大小以字节为单位来衡量。在本节中,我们将讨论如何实现一个java程序来获取给定文件的大小(以字节、千字节和兆字节为单位)。字节是数字信息的最小单位。一个字节等于八位。1千字节(KB)=1,024字节1兆字节(MB)=1,024KB千兆字节(GB)=1,024MB和1太字节(TB)=1,024GB。文件的大小通常取决于文件的类型及其包含的数据量。以文本文档为例,文件的大小可能只有几千字节,而高分辨率图像或视频文件的大小可

简易JavaScript教程:获取HTTP状态码的方法简易JavaScript教程:获取HTTP状态码的方法Jan 05, 2024 pm 06:08 PM

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

即刻获取最新更新:修复缺少最新更新问题即刻获取最新更新:修复缺少最新更新问题Nov 08, 2023 pm 02:25 PM

如果“最新更新可用后立即获取最新更新”选项缺失或灰显,则你可能正在运行开发人员频道Windows11版本,这是正常的。对于其他人,安装KB5026446(22621.1778)更新后会出现问题。您可以采取以下措施来取回“在最新更新可用时立即获取更新”选项。如何取回“在最新更新可用时立即获取更新”选项?在开始以下任何解决方案之前,请确保检查最新的Windows11更新并安装它们。1.使用ViVeTool转到“Microsoft更新目录”页面并查找KB5026446更新。在您的PC上下载并重新安装更

获取给定复数的虚部的C++程序获取给定复数的虚部的C++程序Sep 06, 2023 pm 06:05 PM

现代科学在很大程度上依赖于复数的概念,这一概念最初是通过GirolamoCardano在16世纪引入的在17世纪初建立。复数的公式是a+ib,其中a保留html代码并且b是实数。一个复数被认为有两个部分:实部<a>和虚部(<ib>)。i或iota的值为√-1。C++中的复数类是一个用于表示复数的类。C++中的complex类可以表示并控制几个复数操作。我们来看一下如何表示和控制显示复数。imag()成员函数如前所述,复数由实部和虚部两部分组成。显示实部我们使用real()

快速获取屏幕高度的jQuery技巧快速获取屏幕高度的jQuery技巧Feb 24, 2024 pm 06:30 PM

jQuery技巧:快速获取屏幕高度的实现方式在网页开发中,经常会遇到需要获取屏幕高度的情况,比如实现响应式布局、动态计算元素尺寸等。而使用jQuery可以很便捷地实现获取屏幕高度的功能。下面就来介绍一些使用jQuery快速获取屏幕高度的实现方式,并附上具体的代码示例。方法一:使用jQuery的height()方法获取屏幕高度通过使用jQuery的height

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전