【发布时间】:2017-09-21 11:13:51
【问题描述】:
观察
有一个从 https 提供的包含广告位的单页应用程序网页。这些广告位由一些出价逻辑填充,广告由 JavaScript 编写在 IFRAME 文档中。
首次加载显示广告图片,例如https://tpc.googlesyndication.com/pagead/imgad?id=CICAgKDLu47R8QEQARgBMggW4D7gy4qb5g
当用户在页面上操作时,会发生新的广告竞价并重新加载广告位。在我们的例子中:呈现具有相同 src 属性的 img 元素。
所有其他浏览器(Chrome、IE、Safari)都显示此图像,取自本地缓存。
并非如此:Firefox(Windows、Mac;版本 52)的行为如下:
- 在白色背景上显示
alt文本 - 图像未显示:它消失了,尽管它是具有相同 URL 的完全相同的图像
- 在使用开发者工具时,
img上的工具提示说“加载图像时出错”(我只知道德语消息) - 网络选项卡未显示此图像上的任何活动(也没有
304或“来自缓存”)
其他信息:
- 没有激活/更改的 CSS 可以隐藏图像(实际上在这个 img 周围根本没有 CSS)。
- 无需额外的 JavaScript(例如延迟加载)
- 没有广告拦截器
- 所有资源都从
https加载 - 控制台没有记录错误
- 页面首次加载显示图片
- 所有其他浏览器都没有问题,从来没有。
示例
在以下页面你可以看到错误(我想这是一个 FireFox 错误):
http://bartelt.team.netzathleten-media.de/2017-03-30_MD-230-refresh-bug/
5 秒后广告消失(仅在 FireFox 中)。
问题
您能否给我一些建议,这可能是什么原因造成的?
有没有办法以某种方式调试由外部代码(来自广告服务器)动态创建的图像onerror?
这真的很奇怪,非常感谢您的帮助。
【问题讨论】:
-
我们能否得到一些代码来使用,例如 html 布局。谢谢
-
有趣的是,当我在第二个 console.info('refresh') (在 setTimeout 中)中放置一个断点时,如果我在前进之前稍等片刻,它会短暂闪烁图像或仅显示文本。因此,尽管似乎是刷新导致了它,但它似乎是独立发生的。
-
我很好奇你是否解决了这个问题。
-
@klvs 非常感谢您的帮助!它尚未解决,但有人找到了解决方法。将图像放入额外的
iframe时,问题不再存在。自签名证书的问题仅在测试站点。我们在生产中获得了有效的证书,但设置要复杂得多。
标签: html image debugging firefox