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. Renommerfunction start()
et ses références à quelque chose commefunction startme()
fonctionne très bien... Aucune idée pourquoi il n'aime passtart
bien. (En plus de l'observation:setTimeout(start, 2000)
est beaucoup mieux quesetTimeout("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.
Vous devez vous connecter pour publier un commentaire.
Tout sur que le code est erroné. S'il vous plaît essayer d'éviter que la source de tutoriels dans l'avenir.
Ici est un travail de script: http://jsfiddle.net/teresko/qTJPx/
Liste de problème avec votre script:
language="JavaScript"
est obsolèteID
etcounter
fini dans la portée globalesetTimeout
<script>
tag utilisé dans<head>
lorsque le DOM n'est pas encore prêt.. et je ne veux même pas aller au cours de cette "similaires" extrait, ça ressemble à quelque chose qui, par tous les droits doivent être mort, enterré.
Lorsque vous ajoutez votre code JavaScript, il doit être juste avant la fermeture
</body>
tag, parce que, à ce stade, le DOM est déjà prêt, mais la page n'a pas commencé à rendre encore.Je suggère fortement de vous pour obtenir quelques nouveaux matériaux pour l'apprentissage de JavaScript.
Utilisation
window.start
au lieu de départ pour lesonClick
événement. Il se peut que IE n'est pas de créer un contexte de fenêtre lorsque vous utilisez le code au lieu d'une fonction pour le gestionnaire.Salut je pense que dans cette ligne de votre obtention de l'erreur
Droit ?
Mettre ce code
vous ne serez pas obtenir ce JavaScript: Erreur
Object doesn't support this action
erreur.