当前位置: 首页 > 知识库问答 >
问题:

确定何时加载画布内容

申炳
2023-03-14

有没有办法检测何时加载画布内容?我正在尝试的是以下内容。我需要打印一个页面,其中小部件使用pdfjs库呈现pdf文档。只有第一个pdf页面必须与放置小部件的网页内容一起打印。我的方法是获取pdfjs库创建的第一个pdf页面的画布,并将其内容作为img元素的源。

var content = canvas.toDataURL(); 
var img = document.createElement('img'); 
img.setAttribute('src', content); 
widget.parentNode.insertBefore(img, widget);

现在,如果我按原样使用,图像将被创建,但为空。如果我将上面的代码放在setTimeout中,并延迟几秒钟,那么图像将与第一个pdf页面的内容一起正确呈现,但这对我来说并不可靠。我已经检查了canvas返回的内容。toDataURL()在这两种情况下都不相等,所以这就是我得出画布内容尚未加载的结论的原因。如有任何解决方案,将不胜感激。

共有1个答案

单于翰飞
2023-03-14

画布将像任何其他html标记一样绑定到DOM。但您的问题是图像不是第一次加载的。因此,请使用onload方法加载图像。

参考HTML5画布加载图像数据URL

方法将图像或视频绘制到画布上。因此,请使用该方法在画布上绘制图像。

以下是更新的代码

var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var imageObj = new Image();
imageObj.onload = function() {
        context.drawImage(this, 10, 10);   // here this = image, 10 = width of the image, 10 = height of the image
};

imageObj.src = dataURL;

有关更多信息,请参阅此处

 类似资料:
  • 要使用data URL加载画布,我们可以扩展上一节的例子,用data URL创建一个image对象,然后使用我们的好朋友drawImage()方法把它绘制到画布上。本节,我们将执行一个简单的Ajax调用,从文本文件中获取data URL,再使用该data URL在画布上绘制图像。当然在现实世界中,你有可能从本地存储,或调用数据服务来获取图像的data URL。 绘制步骤 按照以下步骤,把data

  • 问题内容: 我尝试在我的网站中实施AJAX。单击div changepass的内容时,则应加载changepass.template.php。这是我为此使用的代码。 我的问题是在页面changepass.template.php完全加载时如何显示GIF动画(loading.gif)。请给我一些代码提示。 问题答案: 有很多方法可以做到这一点。一种简单的方法: JS: 詹姆斯·怀斯曼 ( James

  • 我正在为我的网站创建一个打印页面:http://vivule.ee/0/print 我希望在页面加载后启动。我尝试过不同的方法,但都不成功。我知道这是可能的,因为我可以监听完成的Ajax调用,但在Angular中是如何实现的?

  • 问题内容: 我如何断言页面的CSS已在Watin 2.1中成功加载并应用了其样式? 问题答案: 在进行了一些研究并写下我的答案之后,我偶然发现了该链接,该链接解释了您需要了解的有关CSS的所有信息,何时加载CSS以及如何检查CSS。 实际上,所提供的链接对它的解释很好,以至于我在其中添加了一些引用以供将来参考。 如果您好奇,我的答案将是#2和#4的变体。 何时真正加载样式表? … 顺便说一句,让我

  • 我试图在一个网站上获得一个内容列表(若有人感兴趣的话,这一个)。布局最近发生了变化,现在他们不会一次加载所有内容,而是使用magic(可能是js)。我目前正在使用JSoup分析HTML,但我愿意接受建议。 这就是我得到的: 实现此目的的代码: 这是我想看到的(复制从检查元素后,页面加载了所有的内容): 谷歌帮不了什么忙,因为与微调器等相关的所有内容都与javascript有关。 解决方案: 由于J

  • 问题内容: 是否可以在不使用Javascript的情况下在页面加载时使用CSS3过渡动画? 问题答案: 您 可以 在页面加载时运行 CSS 动画,而无需使用任何JavaScript;您只需要使用 CSS3关键帧即可 。 让我们看一个例子… 这是仅使用 CSS3 的导航菜单滑入位置的演示: 分解… 这里的重要部分是关键帧动画,我们称之为… …这基本上是说:“开始时,标题将离开屏幕的左侧边缘的整个宽度