Internet Explorer 11中的VBScript支持

38

我尝试了以下包含两个脚本的HTML页面:

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

在Windows 8.1预览版+Internet Explorer 11上,JavaScript可以正常工作,但VBScript无法正常工作。

在(Windows 8 + IE10)和(Windows 7 + IE9)中,这两个脚本都可以正常工作。

我没有找到任何关于Internet Explorer 11停止支持VBScript的信息,您找到了吗?

6个回答

62

1
这是唯一的存在方式吗?还有其他方法可以在IE11中运行VBScript吗? - zaree
12
在 StackOverflow 上,如果你有问题,你可以点击页面顶部的“提问”按钮。 - EricLaw
1
@called2voyage:您尝试在哪个操作系统上(以及确切的IE版本)? - EricLaw
1
@EricLaw Windows 7企业版SP1,Internet Explorer 11.0.9600.18059。 - called2voyage
1
这对我有效,尽管有人声称它无效。Win 8.1 IE 11 - Charlie
显示剩余2条评论

14

其实非常简单。

只有IE 10及以前的版本支持VBScript。但是,您可以轻松地将IE 11的兼容模式更改为IE 10,它完美地运行。

我遇到了同样的问题:一个使用ASP和VBScript开发的旧网站(2004年),而下面的步骤对我来说是解决方案。

要在IE 11中更改兼容模式:

  1. 按F12打开开发人员工具
  2. 在左侧工具栏中向下滚动,直到看到“仿真”设置页面
  3. 将文档模式从默认值(“Edge”)更改为10
  4. 享受您的VBScript

1
这只是一个临时解决方案。它能正常运行,但如果有一天你想使用与IE10不兼容的功能,那么它将无法工作。但这也是我在使用的! - Rafiki

7

实际上,我刚遇到了同样的问题并找到了解决方法。我也尝试了EricLaw描述的方法,但对我没有用。这是我发现的:

打开你的网站, 转到 工具 --> 兼容性视图设置, 然后点击 添加 (你所在的网站应该自动显示在表单中), 你就可以看到结果了。



5
另一个可能的解决方案是使用HTA文件。在我们公司从IE8迁移到IE11时,我一直在努力保存使用简单HTML界面的工具,经过大量调查,找到了这个简单的解决方案:将文件从file.html重命名为file.hta。
然后它将由Microsoft HTML应用程序主机打开,该主机仍支持VBScript。缺点是不支持所有CSS格式,但是使用这种解决方案非常容易。

3
这可能是微软努力让IE11看起来像标准浏览器的一部分。
IE11删除了除实际特定功能检测之外的检查是否为IE的所有现有方法(IE11尚不支持)。
这个想法是IE现在足够像标准浏览器,以至于任何现有的有特别情况为IE的代码都不再适用。
检查VBScript支持只是Microsoft想要防止的那些过时检查之一。

3
并不是完全不是,他们明确表示在用户代理中包含了Trident,这样你就知道它是IE了——只是他们不想触发旧版本IE的所有解决方法。 - Ben Adams
3
你们两个都是对的,我们正在鼓励开发人员专注于特征检测而不是浏览器嗅探,尤其是针对较新版本的IE,在大多数情况下,你的代码应该可以直接使用。随着UA字符串的更改,其他功能(如DXfilters和条件注释)也已被弃用,因为IE继续向基于标准的方向发展。 - Rey Bango

3

试试这个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>

将上述代码保存为 HTA 文件(例如test.hta),并在 IE 中启动。此代码混合了 JavaScript 和 VBScript,并可在 IE 11 中运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接