IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Probl�me de reconnaissance javascript vbscript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 40
    Par d�faut Probl�me de reconnaissance javascript vbscript
    J'ai un soucis avec l'utilisation de javascript et de vbscript dans une m�me page.

    En fait, la page en question contient normalement du vbscript. Cependant sur nos serveurs, il a �t� install� un outil de surveillance / introspection qui ajoute du code javascript � toutes les pages.

    La page s'affiche mais lorsqu'on clique dedans, on a une erreur : "fin d'instruction attendue".
    Apparemment le probl�me vient de la ligne :
    window.setTimeout('wily_eraseStaleClick();', 500);

    Apr�s plusieurs tests, il s'av�re que je n'ai plus d'erreur :
    Si j'enl�ve tout ce qui correspond au vbscript.
    Si j'enl�ve le ; dans le param�tre d'appel du settimeout.
    Si je pr�cise lae param�tre d'appel du settimeout avec 'javascript:'wily_eraseStaleClick();'

    Le probl�me semble donc venir d'une mauvaise reconnaissance du langage de script � utiliser.

    Ma question est donc la suivante : est-il normal qu'il y est un ; dans le param�tre du settimeout ?
    Si oui, y'a-t-il un moyen de sp�cifier le langage de script par d�faut de ma page, ou est-il li� � mon navigateur ?

    Ma page html est en pi�ce jointe.
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre chevronn�
    Profil pro
    � la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : � la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par d�faut
    Citation Envoy� par mouste79
    est-il normal qu'il y est un ; dans le param�tre du settimeout ?
    R�ponse de normand: oui et non. En Javascript, le premier param�tre de la m�thode 'setTimeout' peut-�tre une expression ou une fonction. Vous utilisez une expression et le ';' marque la fin de l'instruction. N�anmoins comme il n'y a qu'un seul appel de fonction, ce ';' peut-�tre omis.

    L'appel aurait pu aussi s'�crire (deuxi�me syntaxe)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    window.setTimeout(wily_eraseStaleClick, 500);
    Citation Envoy� par mouste79
    Si oui, y'a-t-il un moyen de sp�cifier le langage de script par d�faut de ma page, ou est-il li� � mon navigateur ?
    Selon la normalisation HTML 4 du W3C, il est possible de sp�cifier un langage de script par d�faut en inserant la ligne suivante dans la balise HEAD de votre page
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <META http-equiv="Content-Script-Type" content="text/javascript">

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 40
    Par d�faut
    Citation Envoy� par lysandro
    Selon la normalisation HTML 4 du W3C, il est possible de sp�cifier un langage de script par d�faut en inserant la ligne suivante dans la balise HEAD de votre page
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <META http-equiv="Content-Script-Type" content="text/javascript">
    J'ai test� cette balise mais apparemment, �a ne r�sout pas le probl�me.
    C dommage, cette solution me plaisait bien car elle n'impactait pas le code g�n�r� sur lequel je n'ai pas la main.

  4. #4
    Membre chevronn�
    Profil pro
    � la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : � la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par d�faut
    Si je comprend votre probl�me, vous pensez que l'erreur vient de ce que le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    window.setTimeout('wily_eraseStaleClick();', 500);
    est interpr�t� par le moteur VBScript au lieu du moteur Javascript ?
    Cela va d�pendre de l'ordre des scripts dans la page mais vous pouvez essayer de red�finir la fonction 'setTimeout'.
    Il faut que cette redefinition apparaisse AVANT le code qui pose probl�me.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // Sauvegarde pour générer l'appel par la suite
    window._setTimeout = window.setTimeout;
    window.setTimeout = function ( expression, msec ) {
      var expe = ( typeof expression == "string" ) ? expression.length : 0;
      // Si c'est une expression non vide
      if ( expe > 0 ) {
        var expp;
        // On élimine tous les ';' à la fin
        for( expp = expe-1; ( expp >= 0 && expression.charAt(expp) == ";" ); expp-- );
        // Et s'il reste quelque chose
        if ( expp > 0 )
          // On appelle la fonction originelle
          window._setTimeout(expression.substring(0,expp+1),msec);
      }
      // Si c'est une fonction, il faut générer l'appel correct
      else if ( typeof expression == "function" ) {
        var args = ["expression","msec"];
        var arge = arguments.length;
        for( var argp = 2; ( argp < arge ); argp++ )
          args[args.length] = "arguments["+argp+"]";
        eval("window._setTimeout("+args.join(",")+")");
      }
    }
    Il faudra peut-�tre retranscrire le code en VBScript, mais �a ne devrait pas �tre n�cessaire.

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <script language="javascript" type="text/javascript">
       //Ici c'est du JS
    </script>
    <script language="vbscript" type="text/vbscript">
       'Ici c'est du VBS
    </script>
    N�amoins, je te conseille vivement de ne pas utiliser le VBS car seul IE le prend vraiement en charge...

Discussions similaires

  1. R�ponses: 1
    Dernier message: 24/01/2007, 16h09
  2. [AJAX] Variable javascript
    Par Florent08800 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 27/07/2006, 11h13
  3. probl�me de code javascript pour une vue 360�
    Par tomguiss dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 14/03/2006, 22h50
  4. R�ponses: 10
    Dernier message: 04/01/2005, 23h08
  5. ASP,JavaScript,VBScript
    Par Zazeglu dans le forum ASP
    R�ponses: 6
    Dernier message: 01/09/2003, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo