Javascript Onload事件不会在android上停止
我对androids(我的设备有4.1.2)本机浏览器和androids chrome有问题。我用SVG和onload事件构建了一个HTML5WebApp。我像这样包括了SVG(并由W3C重新命名) 我的问题是,onload事件是通过修改显示样式attroibute触发的,因此它是一个调用循环(事件一直激发)。桌面版的chrome和firefox没有这种奇怪的行为。有人知道怎么解决这个问题吗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具
对于那些会问“如何”的人,我想在加载后重新显示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"