37

我用两个脚本尝试了以下 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 支持结束的信息,是吗?

4

6 回答 6

61

多年来,IE 团队一直在尝试淘汰 VBScript。

http://msdn.microsoft.com/en-us/library/windows/apps/Hh700404.aspx表示已从 ExecScript API 中删除支持。http://msdn.microsoft.com/en-us/library/ie/dn384057(v=vs.85).aspx解释说它已从 Internet 区域的 IE11 Edge 模式中删除。

如果您将以下内容添加到您的 HEAD 标记中,您的 VBScript 将运行:

<meta http-equiv="x-ua-compatible" content="IE=10">
于 2013-07-08T17:43:20.813 回答
13

其实很简单。

只有 IE 10 和更早版本支持 VBScript。但是,您可以轻松地将 IE 11 上的兼容模式更改为 IE 10,并且效果非常好。

我遇到了同样的问题:2004 年使用 ASP 和 VBScript 开发的旧网站,以下过程是我的解决方案。

为了更改 IE 11 中的兼容模式:

  1. 按 F12 打开开发者工具
  2. 在左侧工具栏中向下滚动,直到看到“仿真”设置页面
  3. 将文档模式从默认(“边缘”)更改为 10
  4. 享受您的 VBScript
于 2014-09-09T19:54:31.233 回答
6

实际上,我只是遇到了同样的问题,并为自己找到了解决方案。我也尝试了 EricLaw 描述的方式,但这对我不起作用。这是我发现的:

打开您的网站,转到Tools --> Compatibility View Settings,然后单击Add(您所在的网站应该会自动显示在表单中),您应该可以看到结果。

于 2015-04-30T13:59:32.937 回答
5

另一种可能的解决方案是使用 HTA 文件我正在努力保存一个使用简单 HTML 界面的工具来生存我们公司从 IE8 到 IE11 的迁移,经过大量调查,找到了这个简单的解决方案:将文件从 file.html 重命名为文件.hta

然后它由仍然支持 VBscript 的 Microsoft HTML 应用程序主机打开。

缺点是不是所有的 CSS 格式都被支持,但是使用这个解决方案真的很容易

于 2015-05-07T15:14:53.753 回答
3

这可能是微软努力让 IE11 看起来像标准浏览器的一部分。

IE11 删除了所有现有的检查它是否是 IE 的方法(除了 IE11 尚不支持的实际特定功能检测)。

这个想法是 IE 现在工作起来就像标准浏览器一样,任何具有 IE 特殊情况的现有代码都不再适用。

检查 VBScript 支持只是 Microsoft 想要阻止的过时检查之一。

于 2013-07-08T18:01:01.427 回答
2

试试这个 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 中运行。

于 2016-05-20T14:39:50.943 回答