代码之家  ›  专栏  ›  技术社区  ›  Na7coldwater

页面加载后等待元素加载

  •  4
  • Na7coldwater  · 技术社区  · 16 年前

    我有一个从文件加载SVG DOM的函数。目前,它创建了一个 embed 元素并将其放在文档中,然后等待它加载 onload 事件。但显然, 重载 在页面加载后,不会调用放置在文档中的元素。是否有一种方法可以在元素加载完成后注册要调用的函数?

    这就是我所拥有的:

    function loadSVG(svgFilename, callback)
    {
      // Loads data from an svg file
      // loadSVG(
      //           svgFilename, // The path to the file to load
      //           callback     // The function to be called with the
      //                        // SVG document once it loads.
      //        );            
      var embed = document.createElement("embed");
      embed.src = svgFilename;
      embed.onload = function() // Doesn't get called because page has already loaded
      {
        var doc = embed.getSVGDocument();
        document.getElementById("SVGLoader").removeChild(embed);
        callback(doc);
      };
      document.getElementById("SVGLoader").appendChild(embed);
    }
    
    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    相关: How to check if an embedded SVG document is loaded in an html page?

    如果您对SVG文档有控制权,您能否在其中添加一个调用浏览器窗口中的函数的脚本?

    或者,正如对该问题的回答所建议的那样,轮询以查看SVG文档是否已完成加载。

        2
  •  2
  •   Na7coldwater    16 年前

    我发现了问题,我把SVG文档加载到 div 隐藏的标签 style="display:none" . 出于某种原因,浏览器没有加载 embed 当它在这个标签上的时候。当我移除Style属性时,onload事件以我期望的方式激发它。