PhantomJS:onLoadFinished是什么时候开火的,它可以在外部资源(如图像)完成之前触发吗?

时间:2012-09-04 12:24:28

标签: dom phantomjs

我正在将一些HTML加载到WebPage对象中并侦听“onLoadFinished”事件。当触发onLoadFinished时,我将网页呈现为png。

我看到的问题是,当我使用像http://example.com/image.png这样的SRC属性时,HTML内容中的某些图像会一致地呈现,但是当我在SRC属性中使用https://example.com/image.png时,不会一致地渲染(当我通过浏览器访问它们时,SSL和非SSL风格都可以正常提供)。

渲染问题是由于时间问题吗?加载图像之前可以onLoadFinished fire?如果是这样,在渲染到PNG之前是否有一种干净的方法来验证图像是否已加载?

1 个答案:

答案 0 :(得分:2)

我注意到与PhantomJS类似的东西。在多个页面上抓取链接时,有时会触发onLoadFinished-event两次。在提供所有资源之前,还为时过早。我的解决方法是在onResourceReceived上等待页面的状态代码,然后只有在正确的一个触发时执行“onLoadFinished”(拒绝那个早期调用)。