JavaScript: message d'Erreur “Objet ne prend pas en charge cette action”

Le code pour un compteur donne une erreur

Alors que un extrait de similaire ne pas

Je ne peux pas trouver une raison valable...

La ligne en question est:

<input type=button name="but2" value="stop" onClick="window.clearTimeout(ID);">    

Le code complet est:

<html>
        <head>
        <script language="JavaScript">
            var counter=0;
            ID=window.setTimeout("start();",2000);
            function start()
            {
                counter++;
                document.forms[0].elements[0].value=counter;
                ID=window.setTimeout("start();",2000);
            }
        </script>
        </head>
        <body>
            <form name="frm1">
                <input type="text" name="timer1">
                <input type="button" name="but1" value="start" onClick="counter=0; start();">
                <input type=button name="but2" value="stop" onClick="window.clearTimeout(ID);">
            </form>
        </body>
</html>
  • Quel navigateur utilisez-vous et quelle version?
  • Cela doit fonctionner sur IE9 et la source de l'erreur doit être retiré, pas l'avertissement...
  • J'ai IE9 et j'ai essayé les deux liens. Les deux liens fonctionnent. Quel est le problème exactement? Êtes-vous de copier le code de votre PC local?
  • En cliquant sur la barre d'état (dans le fichier html local)...
  • Encore une fois, j'ai téléchargé les deux de ces programmes sur mon PC et ils sont à la fois le travail correctement. Avez-vous essayé un autre navigateur, par exemple Firefox? Êtes-vous en incorporant le code dans une page web existante,? qui contient plus de JavaScript? Peut-être il ya une erreur ailleurs sur la page web? Poste le code complet de la page et j'ai peut-être pouvoir l'aider.
  • Quelle est l'erreur? Essayez d'activer le débogage et de voir ce qui exact morceau de code qu'il vient.
  • Il y a une erreur (celui qui est mentionné dans le titre) qui peut être vu dans IE débogueur...il n'est pas complètement fou.
  • Pour moi, c'est à dire de 9 pauses lorsque vous appuyez sur "démarrer", en disant que start() n'est pas une fonction. Renommer function start() et ses références à quelque chose comme function startme() fonctionne très bien... Aucune idée pourquoi il n'aime pas start bien. (En plus de l'observation: setTimeout(start, 2000) est beaucoup mieux que setTimeout("start();", 2000).)
  • Ouais, c'est à dire peut-être en colère parce que de la façon dont vous utilisez setTimeout. La façon dont vous le faites, c'est comme utiliser la fonction eval() sur une chaîne pour faire exécuter du code. Il y a beaucoup de problèmes de sécurité avec la fonction eval() , de sorte qu'il serait raisonnable pour IE afin de limiter son utilisation.

InformationsquelleAutor pop stack | 2012-04-22