首页 > 解决方案 > 在 iOS 上使用 Chrome 不会触发图像 onLoad 事件

问题描述

我正在使用Scala.jsd3.js ( scala-js-d3 ) 在 Web 应用程序中绘制 SVG。我遇到的问题是,对于我的背景图像,load在 iOS(iPhone)上使用 Chrome 时不会触发该事件。在 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 上调试有点困难,所以到目前为止我发现的就是这些。我只知道image loaded在 iOS 上使用 Chrome 时没有记录(也没有an error has occured日志)。

标签: javascripthtmlioscssd3.js

解决方案


有一个类似的主题(减去 scala JS),这里是链接: 主题一

这是另一个可能有帮助的: 主题二

解决方案最终是他们有“css-properties指定'指针事件'”

你可以发送你的网址进行审查。如果这两个链接都没有帮助,我想我可能会有另一个想法,但我需要查看更多代码。


推荐阅读