一人一花 2018-12-27 14:18 采纳率: 0%
浏览 474

html2canvas 插件和WdatePicker插件发生冲突!!!

基于bootstrap 框架中引入My97 DatePicker 4.2时间插件,同时要实现同时将界面中多个canvas中的效果导出为一张图因此引入了html2canvas 0.5.0-beta3插件实现图片的导出功能,但是在点击导出时,可以成功导出图片但是底部有报错,
具体的实现方法在下面
//导出图片的实现放大
//id为要导出区域的id
html2canvas($("#" +id)).then(function (canvas) {
var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // 获取生成的图片的url
var saveLink = document.createElement('a');
saveLink.href = imgUri;
saveLink.download = '截图.png';
saveLink.click();
});
报错的截图如下:

哪位大神有遇到过同样的问题,求解。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 13:50
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    HTML5 Canvas支持PNG格式,所以你使用到的toDataURL()方法是正确的。然而,当你尝试获取这个DataURL并创建一个元素时,你需要确保它包含download属性,并且设置为你要保存的文件名(例如:'截图.png')。此外,你应该避免使用.click()方法来触发下载操作,因为这可能会导致浏览器阻止你的脚本执行,从而引发错误。你可以通过添加事件监听器或使用e.preventDefault()来解决这个问题。 以下是一个修复后的示例代码:

    // 导出图片的实现放大
    const canvas = $("#id_of_your_canvas_element");
    html2canvas(canvas)
      .then((canvas) => {
        const imgUri = canvas.toDataURL("image/png");
    
        let saveLink = document.createElement("a");
        saveLink.href = imgUri;
        saveLink.download = "截图.png";
        saveLink.click();
      })
      .catch((error) => console.error(error));
    

    请注意,你需要替换上述代码中的#id_of_your_canvas_element为你实际使用的Canvas元素ID。另外,如果你的应用中有其他依赖于DOM的操作,请确保它们也正确处理了这些更改。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀