使用Javascript从IE11运行CATscript 很快:

使用Javascript从IE11运行CATscript 很快:,javascript,html,vbscript,catia,Javascript,Html,Vbscript,Catia,代码CATIA.SystemService.ExecuteScript(sPath,0,sName+“.CATScript”,“CATMain”,aParams)抛出错误类型不匹配,我不理解,因为在IE11(我知道,但我必须)调试器中,为方法ExecuteScript提供了相同的参数列表,并且该调用在VBscript中工作。如何获取有关参数类型的详细信息?我如何知道哪个变量导致了此错误? 我所有的变量都是声明的(使用strict) 详情如下: 我试图找出如何使用HTML界面保存大量函数,以运

代码
CATIA.SystemService.ExecuteScript(sPath,0,sName+“.CATScript”,“CATMain”,aParams)抛出错误类型不匹配,我不理解,因为在IE11(我知道,但我必须)调试器中,为方法ExecuteScript提供了相同的参数列表,并且该调用在VBscript中工作。如何获取有关参数类型的详细信息?我如何知道哪个变量导致了此错误?
我所有的变量都是声明的(使用strict)

  • 详情如下:
我试图找出如何使用HTML界面保存大量函数,以运行CATScript(Catia宏,类似VBscript),这些脚本是通过VBscript启动的,从我的公司从IE8过渡到IE11(这里没有选择)。如前所述,而且(我显然已经尝试了所有解决方案,并且兼容性设置不可激活),VBscript支持在IE11中停止

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

但其他一些是在用户计算机上动态编写的,用于生成反映Catia当前内容的界面。这些在IE11上已经不起作用了,它们是最重要的。似乎它们被认为是“互联网区”,我不理解,因为它们是本地写的。这是为了防止恶意软件吗

下面是我如何从HTML调用函数:

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

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

Sub-StartScript(按钮)
Dim aParams()
暗礁
昏花
模糊CATIA
sName=button.Id
sPath=“C:\temp\”
'获取Catia对象
设置CATIA=GetObject(,“CATIA.Application”)
'在catia中运行脚本
出错时继续下一步
CATIA.SystemService.ExecuteScript sPath,1,sName和“.CATScript”,“CATMain”,aParams
如果错误号为0,则MsgBox错误说明,vbCritical,“QC2工具集”
错误转到0
端接头
我尝试过Javascript,它的功能非常类似。获取Catia对象的代码是
var Catia=new ActiveXObject(“Catia.Application”)


提前谢谢

我终于找到了解决办法

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

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

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