Erreur avec setTimeout dans javascript externe

Erreur avec setTimeout dans javascript externe - HTML/CSS - Programmation

Marsh Posté le 07-06-2009 à 14:52:46    

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
Reply

Marsh Posté le 07-06-2009 à 14:52:46   

Reply

Marsh Posté le 07-06-2009 à 15:50:17    

essayes ca

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

Reply

Marsh Posté le 07-06-2009 à 21:32:10    

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.

Reply

Marsh Posté le 08-06-2009 à 01:38:40    

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.

Reply

Marsh Posté le 08-06-2009 à 09:03:48    

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.

Reply

Marsh Posté le 08-06-2009 à 12:29:34    

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);

Reply

Marsh Posté le 08-06-2009 à 12:50:41    

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
Reply

Marsh Posté le 08-06-2009 à 13:42:37    

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.

Reply

Marsh Posté le 08-06-2009 à 13:49:10    

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+

Reply

Marsh Posté le 08-06-2009 à 13:55:13    

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).

Reply

Marsh Posté le 08-06-2009 à 13:55:13   

Reply

Marsh Posté le 08-06-2009 à 14:00:42    

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
Reply

Marsh Posté le 08-06-2009 à 14:12:10    


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 !!!!
 
@+

Reply

Marsh Posté le 08-06-2009 à 14:22:33    

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__);

Reply

Marsh Posté le 08-06-2009 à 14:32:42    

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);


 

Reply

Marsh Posté le 08-06-2009 à 14:42:52    

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
Reply

Marsh Posté le 08-06-2009 à 14:44:39    

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
Reply

Marsh Posté le 08-06-2009 à 14:52:55    

>>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
Reply

Marsh Posté le 08-06-2009 à 14:53:21    

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
Reply

Marsh Posté le 08-06-2009 à 15:37:26    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed