Ciao a tutti!
Ho un problema con l'inserimento di uno script javascript esterno in un nodo di drupal!
In particolare il problema si presenta solo con Firefox, con gli altri browser funziona bene!
Per aggiungere nell'header del nodo il tag script con il link al file .js ho utilizzato questa
funzione all'interno del file node.template.php:
drupal_add_js('sites/all/script_miei/combi.js');
Potete verificare voi stessi come il tutto funziona abbastanza bene
con gli altri browser, tranne che con firefox!!
Il link della pagina è il seguente:
http://www.agostinopolizzano.info/home/content/calcolatore-combinatorio-di-permutazioni-disposizioni-e-combinazioni
Qualcuno ha qualche suggerimento o alternativa da propormi??
Grazie!
Agostino Polizzano
Ciao,
per prima cosa la funzione che hai scritto non è corretta (forse un errore di battitura perchè sul sito invece è corretta): hai scritto due volte drupal_add_js!!!
In secondo luogo, non vedo errori con Firefox... magari potresti dire anche cosa dovrebbe fare lo script e cosa non fa su Firefox, così potrebbe essere più semplice!
;)
P.S.: se devi fare debugging di javascript devi assolutamente installarti Firebug su Firefox... ti risolve mille problemi in minor tempo!
Ciao! Grazie per la correzione! Si, era un errore di battitura che ho corretto!
Cmq lo script semplicente non mi funziona!! Non vengono invocate le funzioni!
Prova un pò a mettere n=5 e k=2 e cliccare su 'calcolate'.
Funziona?
Grazie mille!
P.S. Firebug l'ho già installato!
Agostino Polizzano
Ingegneria Informatica
website: Agostino Polizzano
La mia console degli errori in firefox 3.6.10 mi riporta questo:
<strong>Errore: form1 is not defined</strong>
File sorgente: http://www.agostinopolizzano.info/home/sites/all/script_miei/combi.js?N
... 4
Ti posso aiutare postandoti questo codice funzionante e testato in IE e FF:
<HTML>
<head>
<title>JS024</title>
<SCRIPT type=text/javascript>
// funzione che verifica i radio buttons
function verif() {
for(n=0;n<=5;n++) {
if(document.form1.rbut[n].checked) {
document.write("<h3>Hai clickato il radio button n."+(n+1))
break
}
else {
if(n==5) {
alert("Nessun radio button clickato")
location.reload()
}
}
}
}
</SCRIPT>
</head>
<body>
<h2>Verifica di una serie di radio buttons</h2>
<form name="form1">
<input type=radio name="rbut"> radio n.1<br>
<input type=radio name="rbut"> radio n.2<br>
<input type=radio name="rbut"> radio n.3<br>
<input type=radio name="rbut"> radio n.4<br>
<input type=radio name="rbut"> radio n.5<br>
<input type=radio name="rbut"> radio n.6<br><br>
<input type=button value="Verifica" onClick="verif()">
</form>
</body>
</HTML>
Ok, era per quello che ti chiedevo cosa facesse lo script... ora mi è più chiaro!
Visto che hai fatto lo script in javascript puro (senza appoggiarti a jquery) secondo me Firefox si incasina perchè non sa cos'è form1. Dovresti provare con una cosa tipo questa:
var form1 = document.getElementById('form1');
e ovviamente dare l'id form1 al form!
;)
Non è così ti assicuro che
if(document.form1.rbut[n].checked) {
lavora in IE e FF !!
Poi say caro gioppy dove hai debuggato lo script? Come fai a dire che ci vuole getElementById e il problema è risolto? Non pensi che si dovrebbero avere i file per poter verificare?
Grazie infinite ad entrambi!!
Ho risolto inserendo all'interno di ogni funzione
document.getElementById
Una buona giornata a tutti!
Agostino Polizzano
Ingegneria Informatica
website: Agostino Polizzano
Meglio ancora un getElementById cross-browser:
http://cross-browser.com/x/lib/view.php?s=xgetelementbyid
<--- Andrea Mancini - biso.it --->
Ciao,
mi spiace ma non ho dato nulla di certo nel mio messaggio! Quello che volevo dire è semplicemente di provare a cambiare lo script in modo da agevolare lo sviluppo e il mantenimento dei propri script: avendo degli id (o delle classi) a cui fare riferimento si fanno meno errori e si può capire prima dove possa essere un problema... almeno questa è l'esperienza in anni di sviluppo! Lungi da me dire che le cose che scrivo sono legge!
;)
Ok non volevo turbarti! A me piace solo dettagliare le cose ed è una piccola soddisfazione postare su un sito di riferimento come questo...
Visto che ora ha risolto questo post può dirsi chiuso. Grazie perchè comunque è una bella discussione, poi uno inserisce le soluzioni che più preferisce.
Ciao :)