1

我正在尝试在我的套件中创建一个内联字段以拥有一个 e 标志画布,然后下载我的画布图像(签名)但每次下载图片但当我在图像查看器中打开它时会出现错误。(错误:它出现我们不支持这种文件格式)虽然尝试下载的格式是.png和.jpg

当我在手机中检查下载时(在暴民浏览器中打开 netsuite 后),链接正在下载整个页面,而不是图像。

我的代码如下:

function signSuitelet(request, response) {
if (request.getMethod() == 'GET') {
    var nsForm = nlapiCreatensForm('signature page');
    var signVar = '<html>'
    signVar += '<head>'
    signVar += '<meta charset="utf-8" />'
    signVar += '<title>eSignature Page</title>'
    signVar += '<script src="https://3455378.app.netsuite.com/core/media/media.nl?id=1936630&c=3455378&h=3YZfTqqol-Icyoxmcikk2wmMfmX3VWk-1HDzId8H8voUFsWv&_xt=.js"></script>'
    signVar += '</head>'
    signVar += '<body>'
    signVar += '<div class="wrapper" style="position: relative; width: 400px; height: 200px; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;  user-select: none;">';
    signVar += '<canvas id="signpad" class="signpad" width=400 height=200 style="position: absolute; left: 0; top: 0; width:400px; height:200px; background-color: rgb(242, 242, 242);"></canvas>'
    signVar += '</div>'

    signVar += '<p></p>'
    signVar += '<a id="download" download="signImage.jpg" href="" onclick="download_img(canvas);">Download to signImage.jpg</a>'
    //script
    signVar += '<script>'
    signVar += 'var canvas = document.getElementById("signpad");'
    signVar += 'function resizeCanvas(canvas){'
    signVar += 'var ratio = Math.max(window.devicePixelRatio || 0, 0);'
    signVar += 'canvas.width = canvas.offsetWidth * ratio;'
    signVar += 'canvas.height = canvas.offsetHeight * ratio;'
    signVar += 'canvas.getContext("2d").scale(ratio, ratio);'
    signVar += '}'
    signVar += 'window.onresize = resizeCanvas;'
    signVar += 'resizeCanvas(canvas);'
    signVar += 'var signaturePad = new SignaturePad(canvas)//const signaturePad = new SignaturePad(canvas)';
    signVar += 'download_img = function(el){'
    // get image URI from canvas object
    signVar += 'var imageURI = canvas.toDataURL("image/jpg");'
    signVar += 'el.href = imageURI;'
    signVar += '};'
    signVar += '</script>'
    signVar += '</body>'
    signVar += '</html>'

    var inLineField = nsForm.addField('custpage_signfield', 'inlinehtml', 'signature field');
    inLineField.setDefaultValue(signVar);
    response.writePage(nsForm);
}

}

任何人都可以帮我解决这个错误并帮助我解决这个问题。

4

1 回答 1

0

onclick="download_img(这个);"

编辑:

您的另一个问题是缺少新行。 没有换行符的结果

如果您在单击链接后检查了控制台,您会看到 download_img 未定义

因此,您可以添加换行符或使用 /**/ 注释语法和 ; 结束每一行。

于 2022-01-27T15:45:49.560 回答