c'è un pezzo di HTML:Errore "Funzione prevista" in IE: '<input onclick = "start();" ... '
<input onclick="start();" type="button" value="Start!"/>
In Firefox e Chrome invoca start
al clic. Tuttavia in IE9 viene visualizzato il messaggio di errore: SCRIPT5002: Function expected
. Poi ho provato diversi casi differenti:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
function start(){
alert("Let's start");
}
function stop(){
alert("Let's stop");
}
</script>
<input onclick="start();" type="button" value="Start!"/><br/> <!-- Failed : the main issue -->
<span onclick="start();">Start!</span><br/> <!-- Work -->
<input onclick="stop();" type="button" value="Stop!"/><br/> <!-- Work -->
<input onclick="start();" type="text" value="Start!"/><br/> <!-- Failed -->
<input onmouseover="start();" type="button" value="Start!"/><br/> <!-- Failed -->
</body>
</html>
- caso originale: Impossibile (È per questo che sono qui.)
- Utilizzare un
span
invece diinput
: Successo - Utilizzare un altro nome della funzione: Successione
- Utilizzare un tipo diverso: Non riuscito
- Utilizzare
onmouseover
invece dionclick
: Impossibile
Ho usato il debugger e ha detto che start
è function start(){alert("Let's start");}
. Quindi ho usato alert(start)
e ho detto fileopen
.
Come il risultato di test di 3, posso facilmente lavorare intorno cambiando il nome, ma voglio sapere perché questo errore sarebbe successo in alcuni casi, ma non è successo negli altri. Modifica: Oppure la cosa migliore successiva, altre soluzioni senza cambiare i nomi.
Per prima cosa, rimuovi tutto javascript dal tuo html! mantieni il tuo javascript in un file js. :) – Johan
@Johan In realtà l'ho fatto e ho ricevuto l'errore, quindi ho inserito JavaScript in HTML per postare qui. – johnchen902
Probabilmente hai ridefinito un'altra variabile 'start' con un altro tipo di funzione. Può anche essere un 'id' di un elemento HTML che ombreggia la variabile globale originale. – Teemu