我有一个使用GWT作为"单页面应用程序编写的现有应用程序"。可能发生的许多事情之一是用户提供的SVG被加载到页面中以供查看。用户可以(从SVG)调用主应用程序中的函数来检索或设置值。
从最近(不确定确切时间)开始,当从GWT加载SVG时,Chrome不再执行 onload 。但是旧的Chrome版本确实如此,Opera和许多(全部?)版本的Firefox都可以。根据用户的说法,IE10 / 11也按预期工作。
Chrome中似乎有些变化,而且最近......
加载SVG看起来像;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.HTMLPanel;
@UiField
HTMLPanel svgContainer;
@Override
public void setSvgContent( String svgContent )
{
clearView();
Element containerElement = svgContainer.getElement();
containerElement.setInnerHTML( svgContent );
即便是最简单的SVG onload也不再执行了;
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" width="744.09448819" height="1052.3622047" version="1.1" onload="alert('Niclas1')">
<text style="font-size:40px" x="150" y="150"
onload="alert('Niclas2')"
onclick="alert('Niclas3')">
<tspan x="150" y="150">##0.0°C</tspan>
</text>
</svg>
简单来说,没有 onload 被执行,但 onclick 没问题。
有谁知道过去几个月在这个空间发生的任何变化?
有没有人有任何解决方法的想法?
答案 0 :(得分:1)
Chrome 34与svg存在严重错误问题,您的问题可能与以下问题有关: https://code.google.com/p/chromium/issues/detail?id=362354 https://code.google.com/p/chromium/issues/detail?id=361576