【问题标题】:VBScript support in Internet Explorer 11Internet Explorer 11 中的 VBScript 支持
【发布时间】:2013-07-03 06:08:16
【问题描述】:

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

【问题讨论】:

    标签: internet-explorer vbscript internet-explorer-11


    【解决方案1】:

    多年来,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">
    

    【讨论】:

    • 是唯一的方法存在,还有没有其他方法可以在IE11中运行VBScript。
    • @zaree:你还没有解释你为什么感兴趣。根据 MSDN,将给定站点移动到非 Internet 区域也可以。
    • 在 StackOverflow 上,如果您有问题,请单击页面顶部的按钮。
    • @called2voyage:您在哪个操作系统(以及确切的 IE 版本是什么)上尝试过?
    • @EricLaw Windows 7 Enterprise SP1,Internet Explorer 11.0.9600.18059
    【解决方案2】:

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

    IE11 移除了all existing ways to check whether it's IE(IE11 还不支持的实际特定功能检测除外)。

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

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

    【讨论】:

    • 不是真的,他们已经明确表示他们在用户代理中包含 Trident,所以你知道它的 IE - 他们只是不想触发旧版本 IE 的所有解决方法
    • 您说的都对,因为我们正在推动开发人员专注于功能检测而不是浏览器嗅探,尤其是对于新版本的 IE,在大多数情况下,您的代码应该可以正常工作。随着对 UA 字符串的更改,DXfilters 和条件 cmets 等其他功能已被弃用,因为 IE 继续向基于标准的方向发展。
    【解决方案3】:

    其实很简单。

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

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

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

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

    【讨论】:

    • 这只是一个临时解决方案。它可以正常工作,但如果有一天你想使用与 IE10 不兼容的功能,它就不再工作了。但它也是我用的!
    【解决方案4】:

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

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

    【讨论】:

    • 你用的是哪个版本的IE?
    • 我使用的是 IE 11。这是来自 MS (msdn.microsoft.com/library/…) 的链接,但你知道到处都有聪明人知道很酷的技巧。也许还有另一种解决方法......
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 2016-07-01
        • 2018-12-13
        • 2014-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多