Image Internet Explorer或Safari中未触发快照svg图像的onload事件

Image Internet Explorer或Safari中未触发快照svg图像的onload事件,image,event-handling,onload,snap.svg,Image,Event Handling,Onload,Snap.svg,我尝试在Snap.svg中动态加载图像,然后在加载图像后对其进行一些处理。加载事件在Chrome、Firefox和Opera中触发,但在Internet Explorer或Safari中不会触发 我有这个设置 如何在Internet Explorer和Safari中加载svg图像时触发onload事件?对于纯svg文档(svg是根元素),我发现了以下内容 在IE9+(IE11,Edge)中,按照规范或预期,在根元素中放置onload=似乎不受尊重。相反,IE似乎“立即”触发事件,即在收到根元素的

我尝试在Snap.svg中动态加载图像,然后在加载图像后对其进行一些处理。加载事件在Chrome、Firefox和Opera中触发,但在Internet Explorer或Safari中不会触发

我有这个设置

如何在Internet Explorer和Safari中加载svg图像时触发onload事件?

对于纯svg文档(svg是根元素),我发现了以下内容

在IE9+(IE11,Edge)中,按照规范或预期,在根元素中放置onload=似乎不受尊重。相反,IE似乎“立即”触发事件,即在收到根元素的打开之后,但在DOM完全加载之前。因此,您的Javascript无法找到您期望的元素(例如)。我曾尝试过延迟等,但那是一个胡扯

在Firefox中,根元素中的onload=按预期工作,当DOM完成时,onload启动

IE的一个解决方法是在根标记中省略onload=,但将其放在“late”或“last”子元素中。这似乎将推迟触发onload=,直到DOM完全加载。这种混乱在Firefox中是不受尊重的,实际上似乎可能会破坏触发的Javascript,至少在我看来是这样


因此,FF和IE方法是不同的,似乎相互排斥

您是否尝试过使用快照加载功能加载?该功能不是用于加载svg文件而不是图像吗?啊,我明白了,我曾错误地假设它是svg,因为它位于svg文件夹中,并表示svg图像已加载,但它的png已加载到svg中。“隐藏图像加载”是否显示?是的,隐藏图像确实会显示在每个浏览器的svg中。在Internet Explorer和Safari中,onload事件不会触发,只是想知道它是否有用。
var s = null;
var g = null;
var image = null;

//$(document).ready(function($) {
$(window).load(function() {
    s = Snap("#svgout");
    g = s.g();

  $("#baseimage").attr("src", "http://www.customcribboards.com/resources/svgs/preview/29.png");

  $("#baseimage").on("load", function() {
    console.log("hidden image loaded");
    image = g.image($(this).attr("src"), 0,0, 400,400);

    image.node.onload = function () {
        console.log("svg image loaded 1");
    };

    $(image.node).on("load", function() {
        console.log("svg image loaded 2");
    });
  });
});