Javascript Onload事件不会在android上停止

Javascript Onload事件不会在android上停止,javascript,android,html,svg,onload,Javascript,Android,Html,Svg,Onload,我对androids(我的设备有4.1.2)本机浏览器和androids chrome有问题。我用SVG和onload事件构建了一个HTML5WebApp。我像这样包括了SVG(并由W3C重新命名) 我的问题是,onload事件是通过修改显示样式attroibute触发的,因此它是一个调用循环(事件一直激发)。桌面版的chrome和firefox没有这种奇怪的行为。有人知道怎么解决这个问题吗 对于那些会问“如何”的人,我想在加载后重新显示SVG,将SVG重新缩放到容器的全宽。默认情况下,svg具

我对androids(我的设备有4.1.2)本机浏览器和androids chrome有问题。我用SVG和onload事件构建了一个HTML5WebApp。我像这样包括了SVG(并由W3C重新命名)

我的问题是,onload事件是通过修改显示样式attroibute触发的,因此它是一个调用循环(事件一直激发)。桌面版的chrome和firefox没有这种奇怪的行为。有人知道怎么解决这个问题吗


对于那些会问“如何”的人,我想在加载后重新显示SVG,将SVG重新缩放到容器的全宽。默认情况下,svg具有他自己的viewbox大小,并且100%的宽度和高度不起作用(只有absolut值起作用,但这不是响应性设计)。隐藏和显示可以在桌面浏览器上修复此问题,但在android上会导致描述的问题。也许,您还有其他想法,如何在没有我的“黑客”的情况下使SVG达到全宽。

在设置
display:block
之前,您是否尝试调用
clearInterval
?在移动设备上重新绘制svg可能需要一些时间,这并非不可能,而且完全有可能因为使用了
setInterval
,所以在
display:block
更新完成之前会再次调用回调

您还可以使用
setTimeout
,它不会每X毫秒重复调用一次


您还应该注意,这样更改
宽度
高度
显示
通常会导致页面回流,这可能会对移动设备的性能造成一定的影响

似乎不可能在Android下的SVG上使用onload函数(几分钟前有类似问题)。您可以并且应该做以下几点:

在文本编辑器中编辑SVG,并在inital-tag中添加如下内容:

width="100%" height="100%" viewBox="0 0 16 16"
确保使用正确的尺寸编辑viewbox。我不知道是否需要插入,但如果您使用,这将很好

function MyMethod() {
    $('#svgContent').attr('style', 'display:none;');
    var iIntervalID = window.setInterval(function(){
        $('#svgContent').attr('style', 'display:block;');
        clearInterval(iIntervalID);
    }, 100);
}
width="100%" height="100%" viewBox="0 0 16 16"