我需要运行带有来自网页的参数的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而不是?只需使用每个按钮上的链接?
答案 0 :(得分:1)
一些潜在的问题:
您的操作系统是64位吗?如果是这样,您必须确保运行正确的浏览器(Internet Explorer同时包含32位和64位)。并非所有COM对象都可用/可见。
您的SuperOffice.Application
是否访问了本地注册表或文件系统?如果是这样,那么您的COM对象将被沙箱化。解决此问题的一种方法是使用.hta
文件扩展名而不是.html
将HTML页面托管在HTML应用程序中,这将允许您的HTML页面作为“完全受信任”的应用程序执行。请参阅Wikipedia对HTML Application的定义。