一人一花 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 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码