document.onmouseup = function() {
var sel = window.getSelection();
var txt = sel + '';
if (txt.trim()) {
var rng = sel.getRangeAt(0);
var el = create('strong');
sel.removeAllRanges(); // Так убирает выделенное, но где логика?
el.appendChild(rng.extractContents());
rng.insertNode(el);
// А после - нет.
// sel.removeAllRanges();
}
}