我正在制作一个使用JavaFX WebView来显示电子邮件HTML文件的电子邮件客户端。为了快速响应,我希望在本地下载电子邮件时显示嵌入式图像。我查找了执行此操作的选项,并遇到了延迟加载的概念。到目前为止,我已经找到并尝试实现此script:
<script>
window.addEventListener('load', function(){
var allimages= document.getElementsByTagName('img');
for (var i=0; i<allimages.length; i++) {
if (allimages[i].getAttribute('data-src')) {
allimages[i].setAttribute('src', allimages[i].getAttribute('data-src'));
}
}
}, false)
</script>
我将遍历文件,将 src 更改为假名,并从每个 img 元素添加/替换 data-src 设置为正确的路径/名称,最后将脚本附加到 body 元素的末尾。
从基础知识开始,我对HTML还是很陌生,而JS并不是显示错误日志的一种,所以我不确定自己在做什么错。我的猜测是,脚本 可以正常工作,但是在从在线src流式传输图像时效果最佳。我的情况是,直到将HTML加载到视图中的某个时间后,文件甚至不存在于某个位置。
如果无法实现,我知道我可以通过Java对WebView进行编码,以在每次图像下载完成时重新加载。我只是希望为用户找到一些更优雅/可能更少的刺激。
答案 0 :(得分:0)
我找到了一个解决方案并将其发布到here。
事实证明,延迟加载不是我想要的。延迟加载只是稍后加载图像,以便可以显示页面。我的问题是处理加载失败,而延迟加载是无法解决的。我会将其标记为重复项,但是我将不编辑此问题的标题,以便其他人更有机会找到它。