0

我們使用Topaz Systems簽名板設備在文檔上記錄電子簽名。如何通過JavaScript訪問Topaz Signature Pad ActiveX對象?

這裏是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函數中以調用其方法並設置其屬性?

我曾嘗試使用原型和jQuery來選擇DOM中的對象。

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

其中沒有一個給出了實際所需的對象。

謝謝!

+0

嗨Roberjo,我試圖運行你的代碼,但在我的情況下SigData是不確定的。當我點擊號按鈕,也沒有簽名出現英寸我試着在我的DemoOCX.exe中測試,如果我的電子簽名工作正常,但它在那裏工作的很好,我在哪裏出了錯?謝謝。 – 2015-01-28 08:45:45

+0

我建議你打開一個新的問題,並確保包含你的代碼。 Sig Pad如何初始化。謝謝! – Roberjo 2015-07-01 19:48:59

回答

4

我能夠通過使用document.getElementById(id);

獲得實際的對象,因此該代碼結束了工作:

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

我希望這樣可以節省別人不必尋找這個答案別的!

1

我已經成功地得到它忽視了OnSign(以下簡稱「腳本」功能的工作),並與替換我的按鈕的onclick =「OnSign()」:

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

(即我剛接手javascript代碼從部分直接用來代替作爲函數

我想我的問題與你的答案有關,一旦它由getElementbyId設置,我該如何處理變量vSig?寧願將代碼保留在腳本部分中。

感謝

+0

查看我的其他答案。 – Roberjo 2013-04-01 14:30:02

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! 
}