HTML - 从网页运行vbscript - Active X组件无法创建对象

时间:2012-09-06 05:45:45

标签: html vbscript activex

我需要运行带有来自网页的参数的vbscript。更具体地说,来自Sharepoint 2010页面。我要做的是打开SuperOffice和特定的文档模板。在这样做的时候,我已经有了这个代码来做到这一点。

startSOTemplate("Anbudsbrev")

Public Sub startSOTemplate(parameter)
    Dim objSO
    Set objSO = CreateObject("SuperOffice.Application")

    If not (ObjSO is nothing) then
        objSO.CurrentDocument.ChangeIdentity 0
        objSO.CurrentDocument.SetDefaults

        objSO.Context.Set "superoffice: document"
        objSO.CurrentDocument.Template = objSO.Database.GetListItemByName(130, parameter)
    End if
End Sub

现在,我尝试使用此代码将此脚本添加到网页中(稍后该链接将替换为按钮)

<HTML>
<HEAD><TITLE>A Simple First Page</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Public Sub myVBFunction(parameter)
    Dim objSO
    Set objSO = CreateObject("SuperOffice.Application")
    If not (objSO is nothing) Then


        objSO.CurrentDocument.ChangeIdentity 0
        objSO.CurrentDocument.SetDefaults

        objSO.Context.Set "superoffice: document"

        objSO.CurrentDocument.Template = objSO.Database.GetListItemByName(130, parameter)

    end if
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>A Simple First Page</H3><HR>
<a href="#" onclick="VBscript:myVBFunction('Anbudsbrev')">link</a>
</BODY>
</HTML>

发生的事情是我在网页上收到错误ActiveX component can't create object: 'SuperOffice.Application'。我知道dll已正确注册,因为它确实可以单独使用vbs脚本。

所以,我真正的问题是:是一种更好的方法来实现同样的目标吗?也许从文件中运行vbscript而不是?只需使用每个按钮上的链接?

1 个答案:

答案 0 :(得分:1)

一些潜在的问题:

  1. 您的操作系统是64位吗?如果是这样,您必须确保运行正确的浏览器(Internet Explorer同时包含32位和64位)。并非所有COM对象都可用/可见。

  2. 您的SuperOffice.Application是否访问了本地注册表或文件系统?如果是这样,那么您的COM对象将被沙箱化。解决此问题的一种方法是使用.hta文件扩展名而不是.html将HTML页面托管在HTML应用程序中,这将允许您的HTML页面作为“完全受信任”的应用程序执行。请参阅Wikipedia对HTML Application的定义。