0
  • 不久:

代码CATIA.SystemService.ExecuteScript(sPath, 0, sName + ".CATScript", "CATMain", aParams) ;抛出错误类型不匹配,我不明白,因为在 IE11(我知道,但我必须)调试器中,CATIA.SystemService 的手表为我提供了方法 ExecuteScript 的相同参数列表,并且此调用正在运行脚本。如何获取参数类型的详细信息?我怎么知道哪个 var 导致了这个错误?我所有的变量都被声明(使用严格)。

  • 详细说明:

我试图弄清楚如何使用 HTML 接口保存大量函数来运行通过 VBscripts 启动的 CATscripts(Catia 宏,VBscript 之类),从我的公司从 IE8 过渡到 IE11(这里没有选择) . 正如在 MSDNStackoverflow中讨论的那样(我显然已经尝试了所有解决方案,并且兼容性设置不可激活),VBscript 支持在 IE11 中停止

我有两种功能:一些是静态的,并存储在我们的 Intranet 网站上。他们仍然在 IE11 上工作(如果我理解的话,边缘模式,虽然我无法找到它的确切含义)

但其他一些是在用户计算机上即时编写的,以生成反映 Catia 中当前内容的界面。这些在 IE11 上不再起作用,并且是最重要的。似乎它们被认为是“互联网区域”,因为它们是本地编写的,所以我不明白。这是为了防止恶意软件吗?

这是我从 HTML 调用函数的方式:

<input type='button' value='00-10' onclick='StartScript(me)' id='import-zip-from-DB'/>

这是VBscript(简化但功能强大):

Sub StartScript(button)
    Dim aParams()
    Dim sName
    Dim sPath
    Dim CATIA
    sName = button.Id
    sPath = "C:\temp\"
    'Get Catia object
    Set CATIA = GetObject(, "CATIA.Application")
    'run the script in catia
    On Error Resume Next
    CATIA.SystemService.ExecuteScript sPath, 1, sName & ".CATScript", "CATMain", aParams
    If Err.Number <> 0 Then MsgBox Err.Description, vbCritical, "QC2 toolset"
    On Error GoTo 0
End Sub

我尝试过 Javascript,具有非常相似的功能。获取 Catia 对象的代码是var CATIA = new ActiveXObject("CATIA.Application");

提前致谢!

4

1 回答 1

0

我终于找到了解决办法!

这不是我最喜欢的答案,但是将文件从 file.html 重命名为 file.hta 允许我的功能在我的用户站上再次工作,因为这些文件现在由 Microsoft HTML 应用程序主机打开。主要缺点:CSS 格式不如 IE,但这是专业工具的小问题

因此,如果有人有不涉及 HTA 文件的解决方案,那肯定会在我的工具集上取代这个解决方法,但现在我松了一口气:)

于 2015-05-07T15:20:55.237 回答