Internet Explorer 11中的VBScript支持

问题描述 投票:33回答:7

我尝试了以下带有两个脚本的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
7个回答
57
投票

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">

9
投票

它其实很简单。

只有IE 10及更早版本支持VBScript。但是,您可以轻松地将IE 11上的兼容模式更改为IE 10,并且它可以正常工作。

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

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

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

6
投票

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

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


5
投票

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

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

缺点是并非所有CSS格式都受支持,但使用此解决方案非常容易


3
投票

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

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

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

检查VBScript支持只是Microsoft希望阻止的那些过时检查之一。


1
投票

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


1
投票

是的,MS已经淘汰了VBS。就像OP一样,不,我没有听过这样的事情。他们就像旅行者想要淘汰一切,直到最后一位MS忠实信徒从悬崖上跳下来,肆无忌惮地想要消除地球上任何“网点”的痕迹(ASP,Skype API,XNA,Silverlight,Lightswitch,VBA,Expression )。

他们试图变得像Chrome / FF一样,就像看着逃跑者懦弱地爬到另一边 - 他们拥有最好的探险家,但是在一种奇怪的驱动方式中,人们认识到民粹主义的安全,他们正在肢解肢体金黄色的肢体。给他们带来优势的东西是DOM模型对所有Windows可执行文件开放,它确实运行VBS,但是因为他们喜欢定期将高功率散弹枪瞄准他们的脚,所以即使这样也被删除了。

他们严格阻止你(网页主持人)甚至不知道你的网页是在IE11等上运行,这些都是狡猾的行为,接近脑损伤。

然而<meta http-equiv="x-ua-compatible" content="IE=10">添加到你的页面标题带回了VBS(如果你能弄清楚你是在IE11,任何人都可以尽管他们尽了最大的努力)。

微软完全在滑行。到目前为止,他们的操作系统仍然可以作为与苹果竞争的高端桌面平台,但随着谷歌和其他人的推进,这种情况将很快发生变化。开发人员已经对它们失去了信心。

© www.soinside.com 2019 - 2024. All rights reserved.