Ho linkato il file script.js a questa pagina.
Quando clicco sull'icona in alto a sinistra dovrebbe essere eseguita la funzione update() contenuta nel file js ma ottengo un errore che dice che la funzione update non è stata dichiarata.
Ho linkato il file script.js a questa pagina.
Quando clicco sull'icona in alto a sinistra dovrebbe essere eseguita la funzione update() contenuta nel file js ma ottengo un errore che dice che la funzione update non è stata dichiarata.
Uno script non si inserisce con
ma concodice:<link rel="javascript" type="text/javascript" href="script/script.js"/>
codice:<script type="text/javascript" src="script/script.js"></script>
Nemmeno.. il codice corretto è:Originariamente inviato da H5N1_Aviaria
Uno script non si inserisce con
ma concodice:<link rel="javascript" type="text/javascript" href="script/script.js"/>
codice:<script type="text/javascript" href="script/script.js"></script>
Notare che è "src" e non "href"codice:<script type="text/javascript" src="script/script.js"></script>
Ciao
Pardon! Un classico errore copia/incolla!
Modifico la risposta![]()
In realtà la sintassi esiste, anzi è con questa che sarebbe più corretto includere uno script. Al momento però non è supportata.Originariamente inviato da H5N1_Aviaria
Uno script non si inserisce con
ma concodice:<link rel="javascript" type="text/javascript" href="script/script.js"/>
codice:<script type="text/javascript" src="script/script.js"></script>
Ho corretto ma ora si presenta un'altro errore:
XMLHTTP is not defined.
Cosa devo fare?
up
Risolto.
Vorrei, prima di darti la soluzione, che tu capissi gli errori commessi.
Nel tuo codice assegni alla variabile class un valore e poi la richiami con il nome Classe.
Cosa c'è di sbagliato?
Innanzitutto che class e Classe sono due variabili diverse e in secondo luogo che "class" è un nome riservato e sarebbe meglio non usarlo.
Altro errore: la funzione switchBrowser accetta come input un'altra funzione che costituisce l'handler dell'oggetto XMLHTTP per l'evento onreadystatechange.
Ma tu non inserisci una funzione, ma il suo risultato, quando ancora la funzone non può produrre risultati dato che l'oggetto XMLHTTP non è ancora stato creato.
Ecco lo script corretto e funzionante:
Inoltre: perchè usi l'XHTML1 Strisct quando non ne rispetti nè la forma nè la filosofia?codice:function update (object, file, container) { if (object.length>0) { var url="./"+file+"?page="+object; XMLHTTP=switchBrowser(function(){setContent(container)}); XMLHTTP.open("GET",url,true); XMLHTTP.send(null); } else { document.getElementById(container).innerHTML = ""; } } function setContent (container) { if (XMLHTTP.readyState==4) { var element=document.getElementById(container); element.innerHTML=XMLHTTP.responseText; } } function switchBrowser (browser) { if (navigator.userAgent.indexOf("MSIE")!=(-1)) { var classe="Msxml2.XMLHTTP"; if (navigator.appVersion.indexOf("MSIE 5.5")!=(-1)) { classe="Microsoft.XMLHTTP"; } try { objectXMLHTTP=new ActiveXObject(classe); objectXMLHTTP.onreadystatechange=browser; return objectXMLHTTP; } catch(e) { alert("Errore"); } } else { objectXMLHTTP=new XMLHttpRequest(); objectXMLHTTP.onload=browser; objectXMLHTTP.onerror=browser; return objectXMLHTTP; } }
Sarebbe meglio utilizzare un buon vecchio HTML4.01 valido che un XHTML1.0 non valido.
Grazie.
Non ho capito una cosa: cos'ha di male il mio codice XHTML?
A livello di struttura:
manca l'attributo xmlns all'elemento HTMLA livello concettuale:Codice PHP:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
Il doctype XHTML 1.0 Strict, 1.1 e il futuro 2.0 prevedono la completa separazione fra struttura e stile.
Sebbene tu abbia giustamente separato la semantica del documento dal suo stile, il documento stesso ne risulta dipendente.
Ad esempio: se disattivo la visualizzazione delle immagini il Browser dovrebbe restituirmi, al posto delle stesse, il valore contenuto nell'attributo alt. E' per questo che tale attributo è obbligatorio.
Se tu inserisci, invece, alt="", il documento diventa valido formalmente, ma non concettualemte.
Prova, per esempio, a spostare la tua pagina in un'altra locazione in modo che non riesca più a trovare il percorso delle immagini: al loro posto avrai un vuoto non cliccabile! Perderai la funzionalità e non potrai accedere alla funzione update().
Inoltre utilizzi gli eventi all'interno della pagina: dovresti rimuovere tutti gli onclick e gestrirli esternamente.