【发布时间】:2020-03-18 15:27:12
【问题描述】:
我正在使用 Scala.js 和 d3.js (scala-js-d3) 在 Web 应用程序中绘制 SVG。我遇到的问题是,对于我的背景图像,在 iOS (iPhone) 上使用 Chrome 时不会触发 load 事件。在 Windows 上使用 Chrome 时会触发。图片本身在所有平台上都可见。
这是我添加图像的方法:
d3.select("#backgroundImg")
.append("image")
.attr("id", "graphBackgroundImage")
.attr("width", "1954px")
.attr("height", "1532px")
.attr("xlink:href", "img/maps/map.png")
// TODO this load event does not trigger on iOS!
.on("load", (_: EventTarget) => { println("image loaded") } : Unit)
.on("error", (_: EventTarget) => { prinltn("an error has occured") } : Unit)
在 Windows 上,这会创建以下 svg dom 元素(并且一切都按预期工作):
<g id="backgroundImg">
<image id="graphBackgroundImage" width="1954px" height="1532px" xlink:href="img/maps/map.png"></image>
</g>
在我的 iPhone 上调试有点困难,所以到目前为止我发现的就是这些。我只知道在 iOS 上使用 Chrome 时没有记录 image loaded(也没有 an error has occured 日志)。
【问题讨论】:
-
有没有可以测试一些解决方案的游乐场?
-
如果你想花点钱,还有 Browserstack,它有很多手机设备可供选择:) browserstack.com 可能还有一些免费的替代品,试试看这里:@ 987654325@
-
您尝试过使用 on("onload") 吗?我要求尝试这个的原因是 iOS 中的 chrome 几乎是基于 webkit 而不是眨眼。所以iOS和windows上的Chrome会有差异
标签: javascript html ios css d3.js