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) é:
E la funzione recita:codice:<span class="event" id="domain" onclick="morphElement('domain', 'morph=select;autosubmit=domainform;name=domain;options=myaudiens.com|cristianoinsola.it');">myaudiens.com</span>
Qualcuno che mi aiuti?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); }![]()


Rispondi quotando
