Ha csak simán a kijelölt szöveg kell plaintextben, azt így megkapod:
function getSelText()
{
return window.getSelection ? window.getSelection() : (document.getSelection ? document.getSelection() : (document.selection ? document.selection.createRange().text : ''));
}
Ha a kijelölt szöveg root HTML node-ja kell, annak minden alelemével és egyebével, akkor
function getSelHTML()
{
if (document.selection && document.selection.createRange)
{
return document.selection.createRange().cloneContents().firstChild;
}
else if (window.getSelection)
{
var sel = window.getSelection();
if (sel.rangeCount > 0)
{
return sel.getRangeAt(0).cloneContents().firstChild;
}
else
{
return null;
}
}
else
{
return null;
}
}
Módosítani csak az utóbbival fogod tudni, úgy, ahogy az előző kommentben leírtam:
function iterate(node)
{
var i;
for (i = 0; i < node.childNodes.length; ++i)
{
if (node.childNodes[i].innerText)
{
node.childNodes[i].innerText = ekezet(node.childNodes[i].innerText);
}
iterate(node.childNodes[i]);
}
}
Ez utóbbit most csak "fejből" írtam és nem teszteltem le, de - hacsak el nem basztam valamit - így kell, hogy menjen.