Javascript Netsuite上的Epad签名表

Javascript Netsuite上的Epad签名表,javascript,forms,netsuite,Javascript,Forms,Netsuite,我没有太多的编码经验,但我们在几年前开发了这个脚本,我们可以在Netsuite上签署发票,2016年的某个时候,它停止了在chrome和firefox上的工作,假设chrome中的某些功能已被删除或更改,因为该脚本在IE中仍然有效 有没有人能理解为什么它会停止工作,因为在IE上使用netsuite是一件非常痛苦的事情,加载和/或处理我们正在运行的任何工作流或脚本都非常慢 ///////////////////////////////////////////////////////////////

我没有太多的编码经验,但我们在几年前开发了这个脚本,我们可以在Netsuite上签署发票,2016年的某个时候,它停止了在chrome和firefox上的工作,假设chrome中的某些功能已被删除或更改,因为该脚本在IE中仍然有效

有没有人能理解为什么它会停止工作,因为在IE上使用netsuite是一件非常痛苦的事情,加载和/或处理我们正在运行的任何工作流或脚本都非常慢

/////////////////////////////////////////////////////////////////////////////////
//
// Filename: suit_epad_sign.js
// Version: 1.0
//
// Suitelet to sign an Invoice using an ePad
//
/////////////////////////////////////////////////////////////////////////////////
function captureSignature(request, response)
{
var context = nlapiGetContext();    

if (request.getMethod() == 'GET' ) {
try {
    var caburl = context.getSetting('SCRIPT', 'custscript_tris_activex_cab_url');

    // Find which browser is being used
    var isChrome = new Boolean(false);
    var agent = request.getHeader('User-Agent');
    if (agent.search("Chrome") >= 0) {
        isChrome = true
    }

    var form = nlapiCreateForm('Sign Invoice');
    form.setScript('customscript_tric_epad_sign_inv_client');
    var uploaddone = request.getParameter('custparam_upd');     

    var invoiceid = request.getParameter('custparam_iid');
    var record = nlapiLoadRecord ('invoice', invoiceid);

    var invoiceidfield = form.addField('invoiceid','text', 'Invoice ID');
    invoiceidfield.setDisplayType ('hidden');
    invoiceidfield.setDefaultValue(invoiceid);

    var customerid = record.getFieldValue('entity');
    var isCashCompany = nlapiLookupField('customer', customerid, 'custentity_is_cash_company');
    var entity = '';
    if (isCashCompany == 'T') {
        var contactid = record.getFieldValue('custbody_invoice_contact');
        entity = nlapiLookupField('contact', contactid, 'custentity_cash_company', true);   
    } else {
        entity = record.getFieldText('entity');
    }

    var entityfield = form.addField('entity','text', 'Customer');
    entityfield.setDefaultValue(entity);
    entityfield.setDisplayType('disabled');
    entityfield.setLayoutType('normal', 'startcol');

    var contact = record.getFieldText('custbody_invoice_contact');
    var contactfield = form.addField('contact','text', 'Contact');
    contactfield.setDefaultValue(contact);
    contactfield.setDisplayType('disabled');
    contactfield.setLayoutType('normal', 'none');

    var invoiceno = record.getFieldValue('tranid');
    var invoicenofield = form.addField('invoiceno','text', 'Invoice Number');
    invoicenofield.setDefaultValue(invoiceno);
    invoicenofield.setDisplayType('disabled');
    invoicenofield.setLayoutType('normal', 'none');

    var total = record.getFieldValue('total');
    var totalfield = form.addField('total','text', 'Invoice Total');
    totalfield.setDefaultValue(total);
    totalfield.setDisplayType('disabled');
    totalfield.setLayoutType('normal', 'none');

    var affirmationfield = form.addField('affirmation','text', 'Affirmation');
    var affirmation = 'Contact: ' + contact + ' from company: ' + entity + '\n';
    affirmation += 'Invoice Number: ' + invoiceno + ' for amount: R' + total;
    affirmationfield.setDefaultValue(affirmation);
    affirmationfield.setDisplayType('hidden');

    if (isChrome == true) {
        // Chrome specific fields start
//  var chromesignfield = form.addField('chromesign','inlinehtml', 'Chrome Signature');
//  chromesignfield.setDefaultValue ('<input type="image" src="images/start.png" id="connect"/>');

        var chromesignimagefield = form.addField('chromesignimage','inlinehtml', 'Chrome Signature Image');
        chromesignimagefield.setLayoutType('normal', 'startcol');
        chromesignimagefield.setDefaultValue ('<img id="signImage" width="400" height="200" style="border:thin solid #696969;"/>');
//      chromesignimagefield.setDefaultValue ('<img id="signImage" src="images/signImage_400.png" width="400" height="200" style="border:thin solid #696969;"/>');

        var chromesignlabelfield = form.addField('chromesignlabel','inlinehtml', 'Chrome Signature Label');
        chromesignlabelfield.setDefaultValue ('<label id="lblError"></label>');

        // Chrome specific fields end       
    } else {

        // IE Specific fields
        var signaturefield = form.addField('signature','inlinehtml', 'Signature');
        signaturefield.setLayoutType('normal', 'startcol');
        var signobject = '<OBJECT id=esCapture1 classid=clsid:84C046A7-4370-4D91-8737-87C12F4C63C5 width="300" height="160" codebase="' + caburl + '" VIEWASTEXT>';
        signobject += '<param name="useslibrary" value="websignAx">';
        signobject += '<param name="useslibrarycodebase" value="websignax.cab">';
        signobject += '<param name="useslibraryversion" value="10,0,0,1">IntegriSign Signature Control';
        signobject += '</OBJECT>';

        signaturefield.setDefaultValue(signobject);

    }
    var jpegfield = form.addField('jpegcontents','inlinehtml', 'JPEG');
    jpegfield.setDefaultValue('<input type="hidden" name="jpegcontents">');     

    var printedfield = form.addField('printed','checkbox', 'Already Printed');
    printedfield.setDisplayType ('hidden');

    var timestampfield = form.addField('timestamp','text', 'Timestamp');
    timestampfield.setDisplayType ('hidden');

    var hashfield = form.addField('hash','longtext', 'Hash');
    hashfield.setDisplayType ('hidden');

    var host = request.getURL().substring(0, (request.getURL().indexOf('.com') + 4) );
    if (isChrome == true) {
        form.addButton('bb1GetSignature', 'Sign');
    } else {
        form.addButton('bb1GetSignature', 'Sign', 'signNow');       
    }
    form.addButton('capture', 'Save Signature', 'saveSignature');
    if (uploaddone == 'Y') {
        form.addButton('print', 'Print Invoice', "printInvoice('" + host + "','" + invoiceid + "')");       
    }

    response.writePage(form);

} catch (err) {
    var errMessage = err;
    if (err instanceof nlobjError) {
        errMessage = errMessage + ' ' + err.getDetails();
    } 
    nlapiLogExecution ('ERROR', 'Get Error', errMessage);       
    var errorhtml = '<html><body><h1>Get Error: ' + errMessage + '</h1></body></html>';
    response.write(errorhtml);
}
} else {
    // Post
try {

    var folderid = context.getSetting('SCRIPT', 'custscript_tris_signature_folder');

    var jpegcontents = request.getParameter('jpegcontents');
    var invoiceid = request.getParameter('invoiceid');
    var invoiceno = request.getParameter('invoiceno');
    var timestamp = request.getParameter('timestamp');
    nlapiLogExecution ('DEBUG', 'invoiceid', invoiceid + ' invoiceno ' + invoiceno + ' timestamp ' + timestamp);    
    nlapiLogExecution ('DEBUG', 'jpegcontents', jpegcontents);  

    var filename = 'INV-' + invoiceno + '.jpg';
    var jpegfile = nlapiCreateFile(filename, 'JPGIMAGE', jpegcontents);
    jpegfile.setFolder(folderid);
    jpegfile.setIsOnline(true);
    var fileid = nlapiSubmitFile(jpegfile);

    // Attach the signature to the Invoice record
    nlapiAttachRecord('file', fileid, 'invoice', invoiceid);

    jpegfile = nlapiLoadFile(fileid);
    var host = request.getURL().substring(0, (request.getURL().indexOf('.com') + 4) );
    var url = host + jpegfile.getURL();
// var url = 'https://system.netsuite.com/core/media/media.nl?id=6317&c=TSTDRV163439&h=ab7cf81a28cc968d297b';   
    // Store the signature hash on the invoice record
    var hash = request.getParameter('hash');
//  var record = nlapiLoadRecord ('invoice', invoiceid);
//  record.setFieldValue('custbody_tris_signature_hash', hash);
//  record.setFieldValue('custbody_tris_signature_file_url', url);
//  record.setFieldValue('custbody_tris_signature_time', timestamp);
//  nlapiSubmitRecord(record);
    var fields = new Array();
    var values = new Array();
    fields[0] = 'custbody_tris_signature_hash';
    values[0] = hash;
    fields[1] = 'custbody_tris_signature_file_url';
    values[1] = url;
    fields[2] = 'custbody_tris_signature_time';
    values[2] = timestamp;
    nlapiSubmitField('invoice', invoiceid, fields, values);

    var params=[];
    params['custparam_iid'] = invoiceid;
    params['custparam_upd'] = 'Y';

    // Redirect back to Get
    response.sendRedirect('SUITELET', context.getScriptId(), context.getDeploymentId(), null, params);

} catch (err) {
    var errMessage = err;
    if (err instanceof nlobjError) {
        errMessage = errMessage + ' ' + err.getDetails();
    } 
    nlapiLogExecution ('ERROR', 'Post Error', errMessage);  
    var errorhtml = '<html><body><h1>Post Error: ' + errMessage + '</h1></body></html>';
    response.write(errorhtml);
}
}
}
/////////////////////////////////////////////////////////////////////////////////
//
//文件名:suit_epad_sign.js
//版本:1.0
//
//Suitelet使用ePad签署发票
//
/////////////////////////////////////////////////////////////////////////////////
函数captureSignature(请求、响应)
{
var context=nlapiGetContext();
if(request.getMethod()=“GET”){
试一试{
var caburl=context.getSetting('SCRIPT','custscript_tris_activex_cab_url');
//查找正在使用的浏览器
var isChrome=新布尔值(false);
var-agent=request.getHeader('User-agent');
如果(代理搜索(“Chrome”)>=0){
变色=真
}
var form=nlapiCreateForm(“签署发票”);
form.setScript('customscript\u tric\u epad\u sign\u inv\u client');
var uploaddone=request.getParameter('custparam_upd');
var invoiceid=request.getParameter('custparam_iid');
var记录=nlapiLoadRecord(“发票”,发票ID);
var invoiceidfield=form.addField('invoiceid','text','invoiceid');
invoiceidfield.setDisplayType('hidden');
invoiceidfield.setDefaultValue(invoiceid);
var customerid=record.getFieldValue('entity');
var isCashCompany=nlapiLookupField('customer',customerid,'custentity_是现金公司');
var实体=“”;
如果(isCashCompany=='T'){
var contactid=record.getFieldValue('custbody\u invoice\u contact');
实体=nlapiLookupField('contact',contactid,'custentity\u cash\u company',true);
}否则{
entity=record.getFieldText('entity');
}
var entityfield=form.addField('entity','text','Customer');
entityfield.setDefaultValue(实体);
entityfield.setDisplayType('disabled');
setLayoutType('normal','startcol');
var contact=record.getFieldText('custbody\u invoice\u contact');
var contactfield=form.addField('contact','text','contact');
contactfield.setDefaultValue(触点);
contactfield.setDisplayType('disabled');
contactfield.setLayoutType('normal','none');
var invoiceno=record.getFieldValue('tranid');
var invoicenofield=form.addField('invoiceno','text','Invoice Number');
invoicenofield.setDefaultValue(invoiceno);
invoicenofield.setDisplayType('disabled');
setLayoutType('normal','none');
var total=record.getFieldValue('total');
var totalfield=form.addField('total','text','Invoice total');
totalfield.setDefaultValue(总计);
setDisplayType(“已禁用”);
setLayoutType('normal','none');
var assignment field=form.addField('assignment','text','assignment');
var确认='Contact:'+Contact+'来自公司:'+entity+'\n';
确认+='发票编号:'+发票编号+'金额:R'+总计;
确认字段。设置默认值(确认);
assignmentfield.setDisplayType('hidden');
如果(isChrome==真){
//特定于Chrome的字段开始
//var chromesignfield=form.addField('chromesign','inlinehtml','chromesign');
//chromesignfield.setDefaultValue(“”);
var chromesignimagefield=form.addField('chromesignimage','inlinehtml','Chrome签名图像');
设置布局类型('normal','startcol');
chromesignimagefield.setDefaultValue(“”);
var chromesignlabelfield=form.addField('chromesignlabel','inlinehtml','chromesignlabel');
chromesignlabelfield.setDefaultValue(“”);
//铬特定字段结束
}否则{
//IE特定字段
var signaturefield=form.addField('signature','inlinehtml','signature');
signaturefield.setLayoutType('normal','startcol');
var signobject='';
signobject+='';
signobject+='';
signobject+='IntegriSign签名控制';
signobject+='';
signaturefield.setDefaultValue(signobject);
}
var jpegfield=form.addField('jpegcontents','inlinehtml','JPEG');
jpegfield.setDefaultValue(“”);
var printedfield=form.addField('printed','checkbox','ready printed');
printedfield.setDisplayType(“隐藏”);
var timestampfield=form.addField('timestamp','text','timestamp');
timestampfield.setDisplayType('hidden');
var hashfield=form.addField('hash','longtext','hash');
hashfield.setDisplayType(“隐藏”);
var host=request.getURL().substring(0,(request.getURL().indexOf('.com')+4));
如果(isChrome==真){
表单.addButton('bb1GetSignature','Sign');
}否则{
表单.addButton('bb1GetSignature','Sign','signNow');
}
form.addButton(“捕获”、“保存签名”、“保存签名”);
如果(uploaddone==“Y”){
form.addButton('print'、'print Invoice'、'printInvoice('“+host+”、'“+invoiceid+”));
}
答复.书面页(表格);
}捕捉(错误){
var errMessage=err;
if(err instanceof nlobjError){
errMessage=errMessage+“”+err.getDetails();
} 
nlapiLogExecution('ERROR','Get ERROR',errMessage);
var errorhtml='Get Error:'+errMessage+'';
response.write(errorhtml);
}
}否则{
//职位
试一试{
var folderid=context.getSetting('SCRIPT'、'custscript\u tris\u signature\u folder');
var jpegcontents=request.getParameter('jpegcontents');
var invoiceid=request.getParameter('invoiceid');
var invoiceno=request.getParameter('invoiceno');