Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1782 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur avec setTimeout dans javascript externe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur avec setTimeout dans javascript externe

n°1892164
bigbang01
Posté le 07-06-2009 à 14:52:46  profilanswer
 

Bonjour,  
j'ai créé un fichier texte test.js avec le code suivant:

Code :
  1. setTimeout("test()",5000);
  2. function test()
  3. {
  4.   WScript.Echo("Hello world\n" );
  5. }


Le message d'erreur est  

Citation :

Script C:\...\test.js
Line:1  
Char: 1  
Error: Object expected  
Code 800A138F  
Source:Microsoft JScript runtime error


Des idées pour résoudre le problème? Merci.


Message édité par bigbang01 le 08-06-2009 à 17:23:17
mood
Publicité
Posté le 07-06-2009 à 14:52:46  profilanswer
 

n°1892177
tomsoft
Posté le 07-06-2009 à 15:50:17  profilanswer
 

essayes ca

Code :
  1. setTimeout("test",5000);

n°1892274
bigbang01
Posté le 07-06-2009 à 21:32:10  profilanswer
 

tomsoft a écrit :

essayes ca

Code :
  1. setTimeout("test",5000);



Merci pour la réponse tomsoft  mais l'erreur reste la même.
J'avais aussi essayé:

Code :
  1. setTimeout(test(),5000);


mais la fonction test s'exécute tout de suite et c'est suivi de l'erreur ci-dessus...D'autres idées?
Peut-être mettre  

Code :
  1. objetMachin.setTimeout("test",5000);

mais quel objetMachin?
Au fait cela tourne sous Windows XP.

n°1892352
GordonF_69
Posté le 08-06-2009 à 01:38:40  profilanswer
 

Au lieu du :
WScript.Echo("Hello world\n" );
Met plutot un :  
alert("Hello world\n" );
 
Comme ca tu vera si ton pb vien du settimeout ou de ton objet.

n°1892379
bigbang01
Posté le 08-06-2009 à 09:03:48  profilanswer
 

Merci pour ta réponse Gordon. Le code suivant fonctionne correctement.

Code :
  1. test();
  2. function test()
  3. {
  4.   WScript.Echo("Hello world\n" );
  5. }

Donc le problème vient du setTimeout.

n°1892471
Pascal le ​nain
Posté le 08-06-2009 à 12:29:34  profilanswer
 

Déclare ta fonction test() dans le head et balande ton settimeout quand tu en as besoin.
Je pense que la fonction doit être déclarée avant utilisation.
 

Code :
  1. <head>
  2. <script language="javascript">
  3. function test()
  4. {
  5.   WScript.Echo("Hello world\n" );
  6. }
  7. </script>
  8. </head>
  9. setTimeout("test()",5000);

n°1892486
bul_3
Posté le 08-06-2009 à 12:50:41  profilanswer
 

bonjour,
>>WScript.Echo("Hello world\n" );
c'esdt pas du javascript mais du VBScript !!!!
j'espère en plus que tu ne mélanges pas serveur/local ( va savoir ?)  
 
exemple en JAVASCRIPT
 
<script type="text/javascript">
function test()
{  alert("Hello world" ); }
setTimeout(test,5000);
</script>
 
ça, ça veut bien dire :
dans 5 secondes, lancer la fonction test ! rien de plus !
 
si tu veux la même chose en VBScript... tu le dis
@+


Message édité par bul_3 le 08-06-2009 à 12:51:41
n°1892510
bigbang01
Posté le 08-06-2009 à 13:42:37  profilanswer
 

Merci Pascal pour ta réponse. Mais le code

Code :
  1. function test()
  2. {
  3.   WScript.Echo("Hello world\n" );
  4. }
  5. setTimeout("test()",5000);


produit la même erreur.

n°1892515
tomsoft
Posté le 08-06-2009 à 13:49:10  profilanswer
 

Code :
  1. <script type="text/javascript">
  2. function test()
  3. {
  4.  alert("Hello world\n" );
  5. }
  6. setTimeout("test()",5000);
  7. </script>


 
marche parfaitement chez moi sur IE7, firefox 3+

n°1892519
bigbang01
Posté le 08-06-2009 à 13:55:13  profilanswer
 

Merci Bul pour ta réponse. Windows connait par défaut deux langages script javascript et VBScript. La fonction wscript.echo (VBScript) a un équivalent en javascript WScript.Echo. Ainsi avec le code:

Code :
  1. function test()
  2. {
  3.   wscript.Echo("Hello world\n" );
  4. }
  5. test();

j'ai un runtime error. En js, seul WScript.Echo est reconnu.
Il s'agit donc bien d'un javascript mais qui tourne en stand alone sous Windows XP dans un fichier test.js. (Pour l'exécuter je double-click sur le fichier test.js sans l'aide d'un browser).

mood
Publicité
Posté le 08-06-2009 à 13:55:13  profilanswer
 

n°1892523
bigbang01
Posté le 08-06-2009 à 14:00:42  profilanswer
 

tomsoft a écrit :

Code :
  1. <script type="text/javascript">
  2. function test()
  3. {
  4.  alert("Hello world\n" );
  5. }
  6. setTimeout("test()",5000);
  7. </script>


 
marche parfaitement chez moi sur IE7, firefox 3+


Oui mais en javascript externe sous windows XP le code

Code :
  1. function test()
  2. {
  3.   WScript.Echo("Hello world\n" );
  4. }
  5. setTimeout("test()",5000);

ne fonctionne pas d'où ma question.


Message édité par bigbang01 le 08-06-2009 à 14:08:17
n°1892527
bul_3
Posté le 08-06-2009 à 14:12:10  profilanswer
 


tétu hein !!!!
je me cite :  
>>WScript.Echo("Hello world\n" );
c'est pas du javascript mais du VBScript !!!!  
par contre  
setTimeout(test,5000);
c'est du javascript !!!!!
 
si tu tiens à tout prix à mélanger les 2, met les
balises script lanagage="vbscript" et script type="text/javascript"
là où il faut !
 
mais :
WScript.Echo("Hello world\n" ); ne fonctionnera pas  
dans une balise <script type="text/javascript">
et
setTimeout(test,5000);
ne fonctionnera pas dasn une balise
<script langage="vbscript">
 
ce n'est pas le même langage !!!!
 
@+

n°1892534
pataluc
Posté le 08-06-2009 à 14:22:33  profilanswer
 

bigbang01 a écrit :

Merci Bul pour ta réponse. Windows connait par défaut deux langages script javascript et VBScript. La fonction wscript.echo (VBScript) a un équivalent en javascript WScript.Echo. Ainsi avec le code:

Code :
  1. function test()
  2. {
  3.   wscript.Echo("Hello world\n" );
  4. }
  5. test();

j'ai un runtime error. En js, seul WScript.Echo est reconnu.
Il s'agit donc bien d'un javascript mais qui tourne en stand alone sous Windows XP dans un fichier test.js. (Pour l'exécuter je double-click sur le fichier test.js sans l'aide d'un browser).


 
je ne suis pas tout à fait d'accord... ton fichier *.js est interprété par wscript.exe, qui est l'interpreteur vbs...
 
de plus, setTimeout est une fonction js et pas vbs. en vbs on utilise il me semble:

Code :
  1. WScript.Sleep(__nb_millisecondes__);

n°1892544
bigbang01
Posté le 08-06-2009 à 14:32:42  profilanswer
 

Désolé de te contredire mais je parle bien de javascript et plus exactement de javascript sous Windows.  
Le code dans le fichier test1.js qui fait appel au javascript Windows fonctionne correctement:

Code :
  1. function test(mystring)
  2. {
  3.   WScript.Echo(mystring);
  4. }
  5. var aux = "Hello world\n";
  6. test(aux);


 

n°1892556
pataluc
Posté le 08-06-2009 à 14:42:52  profilanswer
 

ce n'est pas parce que l'extension est .js que c'est du javascript.

 

je te conseille de faire outils>options des dossiers>type de fichiers>js>avancé>modifier l'action "ouvrir" pour te rendre compte que c'est interprété avec wscript qui est l'interpreteur vbscript.

 

si c'était vraiment du javascript, le code suivant fonctionnerait dans un navigateur:

Code :
  1. <html>
  2.   <head>
  3.   <title></title>
  4.   </head>
  5.   <body>
  6.     <script type="text/javascript" language="javascript">
  7.       WScript.Echo("Hello world\n" );
  8.     </script>
  9.   </body>
  10. </html>
 

mais ce n'est pas le cas, et même pas dans ie.


Message édité par pataluc le 08-06-2009 à 14:43:23
n°1892558
bigbang01
Posté le 08-06-2009 à 14:44:39  profilanswer
 

Merci pataluc, c'est la fonction que je recherchais. Mais wscript.exe va charger le moteur script approprié (javascript si c'est un fichier .js).

Message cité 1 fois
Message édité par bigbang01 le 08-06-2009 à 14:51:03
n°1892567
bul_3
Posté le 08-06-2009 à 14:52:55  profilanswer
 

>>connait par défaut deux langages script javascript et VBScript.
pas dis le contraire !
encore faut-i le lui dire !
et respecter la syntaxe de chacun !!
 
<script langage="vbsrcipt">
et ici function nom() {.. } ça ne marche pas !!!!!
c'est de la syntaxe  javascript
</script>
<script type="text/javascript'">
et ici Wscript.echo : ça ne fonctionne pas !!!  
c'est de la syntaxe  vbscript !!!!
</script>
on peut appeler l'un à partir de l'autre ! sans souci !
mais mélanger : non  !


Message édité par bul_3 le 08-06-2009 à 15:05:56
n°1892569
pataluc
Posté le 08-06-2009 à 14:53:21  profilanswer
 

bigbang01 a écrit :

Merci pataluc, c'est la fonction que je recherchais. Mais wscript.exe va charger le moteur script approprié (javascript si c'est un fichier .js).

 

non wscript sait charger le moteur JScript, mais JScript n'est pas javascript. (au mieux c'est une implementation non standard de javascript: http://www.google.fr/search?q=jscript+javascript)


Message édité par pataluc le 08-06-2009 à 15:39:15
n°1892610
bigbang01
Posté le 08-06-2009 à 15:37:26  profilanswer
 

Le J de JScript c'est Java non?  D'après wikipedia:

Citation :

JScript est le nom générique de plusieurs implémentations d'ECMAScript 3 (souvent appelé JavaScript) créées par Microsoft...
JavaScript est un langage de programmation de scripts principalement utilisé dans les pages web interactives.


Je reconnais que la confusion est importante entre un javascript utilisé dans les pages web et le javascript (ou ECMAScript ou JScript) windows.


Message édité par bigbang01 le 08-06-2009 à 15:50:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur avec setTimeout dans javascript externe

 

Sujets relatifs
Problème d'envoi de formulaire malgré une erreur jsErreur Nonetype sur une regexp pourtant reconnue [résolu]
[AJAX/PHP] Executer du javascript provenant d'un phpErreur requête SQL en VBA dans Excel
Erreur d'exécution '53': Fichier introuvable[Résolu] Erreur incompréhensible...
[HTML / JavaScript?] probleme de retour[Javascript/PHP ?] Couper une chaine de caractères en morceaux
[Javascript] Load d'un fichier depuis URL ??[javascript|jquery] affichage dynamique d'une image ds un div
Plus de sujets relatifs à : Erreur avec setTimeout dans javascript externe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR