Autor Zpráva
Česťa
Profil *
Prosím o radu, když přidávám tuto zprávu, tak nad formulářem si mohu volit písmo tučně, kurzívou, odkaz a tak, ale... To, co jsem vložil, se vždy položí až na konec textu. Lze to udělat tak, aby se vložil tam, kde právě stojí kurzor? Díky za radu...
peta
Profil *
http://www.volny.cz/peter.mlich/www.htm#www52
# www.alexking.org JS textarea kurzor
# los.webz.cz JS textarea kurzor
Česťa
Profil *
Skvělé, díky! Všechny jdou do oblíbených.
Česťa
Profil *

function getCursorPos (elm)
{
switch (elm.nodeName.toLowerCase ())
{
case "textarea":
return getCursorPosTextarea (elm);

case "input":
return getCursorPosInput (elm);
}

return {begin: null, end: null};
}

function getCursorPosInput (elm)
{
if (typeof elm.selectionStart != "undefined" && typeof elm.selectionEnd != "undefined")
return {begin: elm.selectionStart, end: elm.selectionEnd};

if (document.selection && document.selection.createRange)
{
elm.focus ();

var selRange = document.selection.createRange ().duplicate ();

// check if element contains selected text
if (selRange.parentElement () != elm)
return {begin: "n/a", end: "n/a"};

var range = elm.createTextRange ().duplicate ();

//if (!range.inRange (selRange))
// return {begin: "n/a", end: "n/a"};

range.setEndPoint ("EndToStart", selRange);

return {begin: range.text.length, end: range.text.length + selRange.text.length};
}

return {begin: null, end: null};
}

function getCursorPosTextarea (elm)
{
if (typeof elm.selectionStart != "undefined" && typeof elm.selectionEnd != "undefined")
return {begin: elm.selectionStart, end: elm.selectionEnd};

if (document.selection && document.selection.createRange)
{
elm.focus ();

var selRange = document.selection.createRange ().duplicate ();

// check if element contains selected text
if (selRange.parentElement () != elm)
return {begin: "n/a", end: "n/a"};

var range = selRange.duplicate ();
range.moveToElementText (elm);

//if (!range.inRange (selRange))
// return {begin: "n/a", end: "n/a"};

range.setEndPoint ("EndToStart", selRange);

return {begin: range.text.length, end: range.text.length + selRange.text.length};
}

return {begin: null, end: null};
}

function getPos (el)
{
var cursor = getCursorPos (el);
document.getElementById ("pos").value = cursor.begin + ":" + cursor.end;
}

function setCursorPos (elm, begin, end)
{
if (typeof elm.selectionStart != "undefined" && typeof elm.selectionEnd != "undefined")
{
elm.setSelectionRange (begin, end);
elm.focus ();
}

else if (document.selection && document.selection.createRange)
{
var range = elm.createTextRange ();
range.move ("character", begin);
range.moveEnd ("character", end - begin);
range.select ();
}
}

function setPos (el, begin, end)
{
setCursorPos (el, begin, end);
}





<textarea cols="20" rows="3"
id="textarea"
onfocus="getPos(this)"
onmouseup="getPos(this)"
onclick="getPos(this)"
onkeyup="getPos(this)"
>blabla bla lorem ipsum bla blabla</textarea>

<input id="pos" type="text" readonly="readonly" /> - zde se mi zobrazuje pozice kurzoru, např. 5:5; 5:7.



Mohl by mi někdo poradit, jak toho využít právě k vložení nějakého tagu na to místo?
Toto téma je uzamčeno. Odpověď nelze zaslat.