Ciao questa l'ho "risolta" da solo, anche se mi sembra un pò brutta la mia soluzione...
Ho notato che se passavo alla funzione creaFiglio la funzione da mettere in onclick come stringa a firefox andava bene ma ad ie no, mentre se gli passavo un puntatore a funzione ad ie andava bene ma a firefox no xD
Quindi ho risolto modificando creaFiglio come segue:
codice:
//appende un nuovo figlio di tipo elem all'oggetto "padre", dopo avergli assegnato tutte le proprietà
//come indicato nei due array paralleli "nomi_attributi" e "valori_attributi"
//immete come testo dell'oggetto figlio la stringa "text"
//infine, restituisce l'oggetto figlio creato
function creaFiglio(padre,elem, nomi_attributi, valori_attributi, l_array_proprieta, text){
figlio = document.createElement(elem);
if(text != null){
testo = document.createTextNode(text);
figlio.appendChild(testo);
}
for(i=0; i < l_array_proprieta; i++)
figlio.setAttribute(nomi_attributi[i],valori_attributi[i]);
padre.appendChild(figlio);
return figlio;
}
E chiamando la funzione in questo modo:
codice:
f = "MostraMenuPrincipale()"; if(navigator.appName == "Microsoft Internet Explorer")f = function() { MostraMenuPrincipale() }
creaFiglio(contenuto,"input",new Array("type","id","class","value","onclick"),new Array("button","but_indietro","small_button","<",f),5,null);
Se qualcuno dovesse avere un idea migliore, gliene sarei immensamente grato :P
Originariamente inviato da cavicchiandrea
Ho dei dubbi sia sul concetto di sviluppo con le array passate in una funzione (ricordati che le
array partono da 0 se indichi 5 nella array di valori dovranno essercene 6 [0,1,2,3,4,5] altrimenti andrà in errore) che lo script vero e proprio, non credo (ma non sono sicurissimo) che IE supporti gli eventi attribuiti con setAttribute (onclick) se non l'hai già fatto ripasserei i concetti del
DOM
Ciao credo che la cosa funzioni perchè se passo 5 come lunghezza dell'array il for mi si ferma a 4 e non a 5, perchè c'è il < non il <= nella condizione.
Per quanto riguarda il fatto degli onclick con la setAttribute vedi su
ci volevano i puntatori a funzione.