如何通过javascript访问Topaz Signature Pad ActiveX对象?

时间:2012-04-19 20:15:42

标签: javascript activex electronic-signature topaz-signatures

我们正在使用Topaz Systems签名板设备在文档上记录电子签名。

以下是该公司为javascript使用提供的演示:

  

基于Javascript的HTML互联网签名演示download

签名板通过<OBJECT />元素添加到页面中。

 <OBJECT classid=clsid:69A40DA3-4D42-11D0-86B0-0000C025864A height=75
         id=SigPlus1 name=SigPlus1
         style="HEIGHT: 90px; WIDTH: 300px; LEFT: 0px; TOP: 0px; border: 1px solid #000; margin-top:10px; " VIEWASTEXT>
     <PARAM NAME="_Version" VALUE="131095">
     <PARAM NAME="_ExtentX" VALUE="4842">
     <PARAM NAME="_ExtentY" VALUE="1323">
     <PARAM NAME="_StockProps" VALUE="0">
 </OBJECT>

在javascript中对对象执行操作的文档引用VBScript并仅通过id调用该对象。

<script language="javascript">  

    function OnClear() {
       SigPlus1.ClearTablet();
    }

    function OnCancel() {
       SigPlus1.TabletState = 0;
    }

</script>

我发现这种方法无法在DOM中找到所有相关方法和属性的实际对象。调用这些函数会导致:

  

SigPlus1未定义

OR

  

SigPlus1.ClearTablet()不是函数

如何在javascript函数中获取实际对象以调用其方法并设置其属性?

我尝试使用prototype和jQuery来选择DOM中的对象。

var vsig = $('SigPlus1');  // prototype
var vsig = $('#SigPlus1'); // jQuery
var vsig = document.form.SigPlus1; // document

其中没有一个能够提供所需的实际对象。

谢谢!

3 个答案:

答案 0 :(得分:4)

我可以使用document.getElementById(id);

获取实际对象

所以这段代码最终起作用了:

var vSig = document.getElementById('SigPlus1');

我希望这可以让其他人不必搜索这个答案!

答案 1 :(得分:2)

初始化vSig后,您可以调用关联的函数并访问签名的属性。例如,“保存签名”按钮onclick应该触发这样的内容:

function OnSaveSignature() {
    var vSig = document.getElementById('SigPlus1');
    if(vSig.NumberOfTabletPoints == 0){ // No signature data (Did not sign yet)
        alert("No Signature Found!");
    } else {
        vSig.TabletState = 0;  // Turn off sig tablet 
        vSig.SigCompressionMode = 1;  // Set compression mode
        mySaveSigFunction(vSig.SigString);  // Save sig data
    }  // Done!
}

答案 2 :(得分:1)

我设法通过忽略OnSign()的“脚本”功能并用我的按钮替换onclick =“OnSign()”来实现它的工作:

<INPUT id="SignBtn" name="SignBtn" type="button" value="Sign" onclick="javascript:SigPlus1.TabletState = 1;">

(即我刚刚从该部分获取了javascript代码并直接使用它而不是作为函数。

我想我的问题与你的答案有关,一旦由getElementbyId设置,我该如何处理变量vSig?因为我更愿意将代码保留在我的脚本部分中。

由于