JSFiddle - React, Tailwind, and code Playground
HTML
<input id="inp" value="Hello world!"/>
<br />
<br />
<textarea id="txtarea">Hello world!</textarea>
<br />
<p id="para"> This is a paragraph</p>
<span id="spa"> This is a span</span>
<label id="lbl"> This is a label</label>
JavaScript
if (!window.textSelector) {
textSelector = {};
}
textSelector.Selector = {};
textSelector.Selector.getSelected = function() {
if (window.getSelection) {
return window.getSelection();
} else if (document.getSelection) {
return document.getSelection();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
function getSelectedText() {
var str = textSelector.Selector.getSelected();
alert(str)
getSelectectedTextLength(str);
}
function getSelectectedTextLength(str) {
alert((str+'').length)
}
function getSelectedTextInput(inputId) {
var strPos = getCurrentCaretPositionIndex(inputId);
var str = '';
var inputVal = $('#'+inputId).val();
for ( var i = 0; i < inputVal.length; i++ ) {
if ( i >= strPos['begin'] && i <= strPos['end'] ) {
str += inputVal.substr( i, 1 );
}
}
alert(str)
getSelectectedTextLength(str);
}
function getCurrentCaretPositionIndex(inputId) {
var rangeArray = [],
inputBox = document.getElementById(inputId),
br = ((inputBox.selectionStart || inputBox.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false ) );
if (br == "ie") {
inputBox.focus();
var range = document.selection.createRange();
rangeArray['begin'] = 0 - range.duplicate().moveStart('character', -100000);
rangeArray['end'] = rangeArray['begin'] + range.text.length;
} else if (br == "ff") {
rangeArray['begin'] = inputBox.selectionStart;
rangeArray['end'] = inputBox.selectionEnd;
}
return...