Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problemi javascript internet explorer 8

    Ciao a tutti,
    Sto preparando un progetto per l'università come già spiegato qui: http://forum.html.it/forum/showthrea...readid=1546680

    Il problema che ho con javascript è che i bottoni creati con il dom non chiamano il metodo scritto nella proprietà onclick quando vengono premuti.

    Ecco il metodo che crea gli elementi figli del mio progetto:

    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;
    }
    Ed ecco un esempio di come creo un input:

    codice:
    creaFiglio(contenuto,"input",new Array("type","id","class","value","onclick"),new Array("button","but_indietro","small_button","<","MostraMenuPrincipale()"),5,null);
    Grazie in anticipo per le risposte.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    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
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

    RE

    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.