在Firefox中,当服务器向浏览器发出纯SVG文档,并且在附加了onload = events的SVG元素之前发出Javascript脚本元素时,可以确保已加载早期的SVG元素在下一个之前。因此,脚本可以假定它存在于DOM中,并且在脚本尝试访问它时可以访问。
但是,在IE9中,似乎没有对DOM元素加载方式的保证或顺序。
有没有办法强制在IE9中按文档顺序加载纯SVG文档(没有DOCTYPE html5或meta xua标记?)
否则你在Javascript中有很多猴子业务,只是为了确保在DOM中加载元素。
答案 0 :(得分:2)
我在SVG或DOM规范中找不到任何需要按文档顺序加载元素的内容(只是它们按照该顺序绘制)。如果不是必需条件,那么您将无法保证您期望的行为。我认为毕竟你需要依靠那种“猴子生意”。
一种可能性是在调用元素中添加一个子元素,该元素是目标元素中后代的链接。 可能会延迟源元素上的加载事件,直到加载链接为止。
另一个是,如果容器包含引用外部资源的元素,则在容器元素上设置externalResourcesRequired="true"
将具有禁用该容器内容的渐进式显示的效果。换句话说,通过链接到另一个文档并设置该属性,您可以禁用SVG的流式行为,这可能会在加载事件触发时强制使用完整的DOM。