( TCH | 2022. 07. 12., k – 22:07 )

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.