Hallo ChrisB,
getSelectedText liefert lediglich das selektierte Textstück zurück, und das soweit ich sehen kann korrekt.
Also im Opera funktioniert sie nicht. Er hängt sich an der 2. if-Bedingung if(message.isTextEdit){  auf. Sollte die wichtig sein für den IE, würde ich hier ggf. mit window.opera nachrüsten:
  
function getSelectedText(theForm) {  
	var message = theForm.message;  
	var selected = '';  
	if(navigator.appName=="Netscape" && message.textLength>=0 && message.selectionStart!=message.selectionEnd )  
		selected=message.value.substring(message.selectionStart,message.selectionEnd);  
	else if( typeof document.selection != "undefined" ) {  
		if(message.isTextEdit || window.opera){  
			message.focus();  
			var sel = document.selection;  
			var rng = sel.createRange();  
			rng.colapse;  
			if((sel.type == "Text" || sel.type == "None") && rng != null){  
				if(rng.text.length > 0) selected = rng.text;  
			}  
		}  
	}  
	return selected;  
}  
Das läuft zumindest im Opera 10. Mehr habe ich nicht getestet.
Mit freundlichem Gruß
Micha