web-dev-qa-db-fra.com

Prise en charge de VBScript dans Internet Explorer 11

J'ai essayé la page HTML suivante avec deux scripts:

<html>
  …
  <body>
    <script type="text/javascript">
      alert ('Javascript');
    </script>
    <script type="text/vbscript">
      msgbox "Vbscript"
    </script>
  </body>
</html>

Sous Windows 8.1 preview + Internet Explorer 11, le JavaScript fonctionnait, mais pas le VBScript.

Sur (Windows 8 + IE10), (Windows 7 + IE9), les deux scripts ont fonctionné.

Je n'ai trouvé aucune information sur la fin de la prise en charge de VBScript dans Internet Explorer 11, n'est-ce pas?

33
Ensayo

L’équipe IE) essaie de mettre VBScript à la retraite depuis des années.

http://msdn.Microsoft.com/en-us/library/windows/apps/Hh700404.aspx indique que la prise en charge a été supprimée de l'API ExecScript. http://msdn.Microsoft.com/en-us/library/ie/dn384057 (v = vs.85) .aspx explique qu'il a été supprimé du mode IE11 Edge dans la zone Internet.

Si vous ajoutez ce qui suit à votre balise HEAD, votre VBScript sera exécuté:

<meta http-equiv="x-ua-compatible" content="IE=10">
57
EricLaw

C'est vraiment très simple.

Seulement IE 10 et plus ancien supporte VBScript. Cependant, vous pouvez facilement changer le mode de compatibilité sur IE 11 à IE 10 et c fonctionne parfaitement bien.

J'ai eu le même problème: un ancien site Web développé en 2004 en utilisant ASP et VBScript et la procédure suivante a été la solution pour moi.

Afin de changer le mode de compatibilité dans IE 11:

  1. Appuyez sur F12 pour ouvrir les outils de développement.
  2. Dans la barre d’outils de gauche, descendez jusqu’à ce que la page "Emulation" s'affiche
  3. Changer le mode document de la valeur par défaut ("Edge") à 10
  4. Profitez de votre VBScript
9
Ev.Rei.

En fait, je viens d'avoir le même problème et trouvé la résolution pour moi-même. J'ai aussi essayé la façon décrite par Eric Law mais cela ne m'a pas fonctionné. Voici ce que j'ai trouvé:

Ouvrez votre site web, allez à Tools --> Compatibility View Settings, puis cliquez sur Add (le site Web sur lequel vous vous trouvez devrait apparaître automatiquement dans le formulaire) et vous devriez pouvoir visualiser le résultat.

6
ian0411

Une autre solution possible consiste à utiliser des fichiers HTA. J'avais du mal à enregistrer un outil utilisant une interface HTML simple pour survivre à la migration de notre société d'IE8 vers IE11. Après de nombreuses recherches, cette solution simple a été trouvée: renommer les fichiers de file.html en fichier.hta

il est ensuite ouvert par l’application Microsoft HTML Host, qui prend toujours en charge VBScript.

L'inconvénient est que tous les formats CSS ne sont pas pris en charge, mais il est très facile d'utiliser cette solution.

5
Rafiki

Cela fait probablement partie des efforts de Microsoft pour que IE11 ressemble à un navigateur standard.

IE11 supprime tous les moyens existants pour vérifier s'il s'agit d'IE (autre que la détection de fonctionnalités spécifiques réelles que IE11 ne prend pas encore en charge).

L'idée est que IE fonctionne maintenant assez comme un navigateur standard pour que tout code existant comportant des cas spéciaux pour IE ne devrait plus s'appliquer.

La vérification de la prise en charge de VBScript est simplement l’une de ces vérifications obsolètes que Microsoft souhaite empêcher.

3
SLaks

Oui, les MS sont obsolètes. Comme pour le PO, non, je n’ai jamais entendu cet autre pays. Ils sont comme des lemmings qui veulent tout obsolète jusqu’à ce que les derniers fidèles MS aient sauté du pied de la falaise, voulant effacer toute trace de tout ce qui n’est pas "net" de la Terre (ASP, API Skype, XNA, Silverlight, Lightswitch, VBA, Expression ).

Leur tentative de ressembler à Chrome/FF est comme regarder un déserteur lâche ramper de l’autre côté - ils avaient le meilleur explorateur du bloc, mais dans une étrange course vers la sécurité du populisme perçu, ils démembrent la poule aux oies mortes. branche d'oeuf d'or par membre. Ce qui leur donnait un avantage, c’est que le modèle DOM était ouvert à tous les exécutables Windows et qu’il utilisait bien VBS, mais comme ils aiment viser régulièrement des fusils de haute puissance, même ceux-ci sont supprimés.

Leurs tentatives rigoureuses pour empêcher le maître de la page Web de vous empêcher, même de savoir que votre page est exécutée sous IE11, etc., sont un comportement du comportement de la belette frôlant les lésions cérébrales.

Et pourtant <meta http-equiv="x-ua-compatible" content="IE=10"> ajouté à votre en-tête de page ramène VBS (si vous pouvez comprendre que vous êtes sur IE11, tout le monde peut le faire malgré tous ses efforts).

Microsoft est complètement sur les patins. Pour l'instant, leur système d'exploitation occupe toujours une place en tant que plate-forme de bureau haut de gamme pour concurrencer Apple, mais cela changera bientôt avec Google et d'autres Push In. Les développeurs ont perdu confiance en eux.

1
www-0av-Com

Essayez ce code HTA:

<html><head>
<HTA:APPLICATION 
            ID              = "testHTA" 
            APPLICATIONNAME = "testHTA"
            VERSION         = "0.1"
            NAVIGABLE       = "yes"
            SHOWINTASKBAR   = "yes" 
            SINGLEINSTANCE  = "yes" 
            WINDOWSTATE     = "normal"
            BORDER          = "normal" 
            BORDERSTYLE     = "normal"
            INNERBORDER     = "no"    
            CAPTION         = "yes" 
            MINIMIZEBUTTON  = "yes"
            MAXIMIZEBUTTON  = "yes"
            SYSMENU         = "yes" 
            SCROLL          = "yes" 
            SCROLLFLAT      = "yes"    
            CONTEXTMENU     = "yes"
            SELECTION       = "yes"
        />
</head>
  <script language="javascript" type="text/javascript">
      function MyJsAlert() {
        alert('Hello world!  Opening notepad now...');
      }
  </script>
<script language="VBScript" type="text/vbscript">
MyJsAlert() 'executes javascript
' Create a Windows Shell object
set oShell = CreateObject("WScript.Shell")
oShell.CurrentDirectory = "c:\CAMEO\webapps\"
oShell.run("c:\windows\system32\notepad.exe")
</script>
</body></html>

Enregistrez le code ci-dessus dans un fichier HTA (test.hta) et lancez-le dans IE. Ce code mélange javascript et vbscript et fonctionne dans IE 11.

1
MAbraham1