Salve,
ho una funzione che gira solo su firefox (provato su firefox, ie e safari).
Il richiamo d HTML (che è quello che da errore su internet explorer) é:
codice:
<span class="event" id="domain" onclick="morphElement('domain', 'morph=select;autosubmit=domainform;name=domain;options=myaudiens.com|cristianoinsola.it');">myaudiens.com</span>
E la funzione recita:
codice:
function morphElement(id, actions) {
	//Carico tutte le opzioni
	var explode = actions.split(';');
	var option = new Array;
	for(var n = 0; n < explode.length; n++) {
		var query = explode[n].split('=');
		option[query[0]] = query[1];
	}
	
	//Azioni varie
	var element = document.getElementById(id);
	var parent = element.parentNode;
	var node = new Object;
	if(defaultNode == null) var defaultNode = element.innerHTML; // Valore originale
	// CASELLA DI TESTO
	if(option['morph'] == 'text') {
		node = document.createElement('input');
		node.value = element.innerHTML;	
		node.name = option['name'];
		node.type = 'text';
	}
	
	// TEXTAREA
	if(option['morph'] == 'textarea') {
		node = document.createElement('textarea');
		node.innerHTML = element.innerHTML;
	}
	
	// SELECT
	if(option['morph'] == 'select') {
		node = document.createElement('select');
		node.name = option['name'];
		var loadOpts = option['options'].split('|');
		for(var i = 0; i < loadOpts.length; i++) {
			var newOption = document.createElement('option');
			newOption.name = loadOpts[i];
			newOption.value = loadOpts[i];
			newOption.innerHTML = loadOpts[i];
			if(element.innerHTML == loadOpts[i]) { newOption.selected = 'selected'; var release = loadOpts[i]; }
			node.appendChild(newOption);
		}
	}
	node.name = option['name'];
	node.id = id;

//Verifico se devo aggiungere tasto submit
if(option['submit'] != null) {
if(option['submit'] != 'none') {
	var submitOriginal = document.getElementById(option['submit']);
	var submitButton = document.createElement('input');
	submitButton.id = 'submit_' + option['submit'];
	submitButton.type = 'submit';
	submitButton.value = submitOriginal.title;
	submitOriginal.appendChild(submitButton);
} }
//Verifico invio automatico
if(option['autosubmit'] != null) {
if(option['autosubmit'] != 'none') {
	node.onchange = function() { document.getElementById(option['autosubmit']).submit(); }	
} }
//Verifico completamento automatico
if(option['autofill'] != null) {
if(option['autofill'] != 'none') {
	if(option['morph'] == 'text')
	node.onkeyup = function() { document.getElementById(option['autofill']).value = node.value; }
	else if(option['morph'] == 'textarea')
	node.onkeyup = function() { document.getElementById(option['autofill']).value = node.value; }
	else if(option['morph'] == 'select')
	node.onchange = function() { document.getElementById(option['autofill']).value = loadOpts[node.selectedIndex]; }
} }
//Reimposto valori di base
node.onblur = function() {
	reverseElement(id, actions, element.tagName, element.getAttribute('class'));
	if(submitOriginal != null) submitOriginal.removeChild(submitOriginal.firstChild);
}	

parent.replaceChild(node, element);	
}
//Funzione di reintegrazione
function reverseElement(id, actions, tag, class) {
	var element = document.getElementById(id);
	var parent = element.parentNode;
	var node = document.createElement(tag);
	node.id = id;
	node.setAttribute('class', class);
	node.onclick = function() { morphElement(id, actions) }
	if(element.tag == 'textarea') node.innerHTML = element.innerHTML; else node.innerHTML = element.value;
parent.replaceChild(node, element);
}
Qualcuno che mi aiuti?