You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

前端触发打印操作后如何调用后端接口修改数据库记录

实现方案

你可以根据业务对标记精度的要求选择以下两种方案:

方案1:点击打印按钮即标记(不校验最终是否确认打印)

实现成本最低,直接在原有打印逻辑中新增后端接口调用即可,适合对标记准确性要求不高的场景:

function printDiv (divName) {
    // 调用后端标记接口,可替换为你项目中使用的ajax/axios请求方法
    fetch('/api/user/print-mark', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            // 补充项目所需的身份校验头,如token等
        },
        body: JSON.stringify({
            // 补充业务所需参数,如用户ID、打印内容ID等
        })
    })

    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}

方案2:打印对话框关闭后标记(精度更高)

借助浏览器原生afterprint事件实现,该事件会在用户关闭打印对话框(点击确认/取消都会触发)时执行,适合需要确认用户已经触发打印流程的场景。
注意:你原有逻辑直接替换document.body.innerHTML会导致原页面所有绑定的DOM事件失效,以下方案用隐藏iframe实现打印,不会影响原页面功能:

function printDiv(divName) {
    const printContents = document.getElementById(divName).innerHTML;
    // 创建隐藏iframe,不干扰原页面
    const printIframe = document.createElement('iframe');
    printIframe.style.cssText = 'position:absolute;left:-9999px;top:-9999px;width:0;height:0';
    document.body.appendChild(printIframe);

    // 写入待打印内容
    const iframeWin = printIframe.contentWindow;
    iframeWin.document.write(printContents);
    iframeWin.document.close();

    // 监听打印对话框关闭事件
    iframeWin.addEventListener('afterprint', () => {
        // 调用后端标记接口
        fetch('/api/user/print-mark', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                // 补充身份校验头
            },
            body: JSON.stringify({
                // 补充业务参数
            })
        })
        // 销毁临时iframe
        document.body.removeChild(printIframe);
    })

    // 触发打印
    iframeWin.print();
}

补充说明

目前Web标准没有提供区分用户点击「确认打印」还是「取消」的原生API,如果需要100%校验用户实际完成了打印操作,需要搭配客户端插件、硬件对接等特殊方案实现,普通Web场景下以上两种方案可覆盖绝大多数业务需求。

内容的提问来源于stack exchange,提问作者R-S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:39:03