1

在 Firefox 中,当服务器向浏览器发出纯 SVG 文档,并且在附加了 onload= 事件的 SVG 元素之前发出 Javascript 脚本元素时,可以确保在下一个 SVG 元素之前已经加载了较早的 SVG 元素一。因此,脚本可以假定它存在于 DOM 中,并且在脚本尝试访问它时可以访问。

但是,在 IE9 中,DOM 元素的加载方式似乎没有保证或顺序。

有没有办法强制纯 SVG 文档(没有 DOCTYPE html5 或 meta xua 标签)在 IE9 中按文档顺序加载?

否则,您在 Javascript 中有很多猴子业务来简单地确保将元素加载到 DOM 中。

4

1 回答 1

2

我在 SVG 或 DOM 规范中找不到任何要求元素按文档顺序加载的内容(只是它们按该顺序绘制)。如果这不是要求,那么您将永远无法保证您期望的行为。我认为你毕竟需要依靠那个“猴子生意”。

一种可能性是在调用元素中添加一个子元素,该子元素是指向目标元素中后代的链接。这可能会延迟源元素上的加载事件,直到加载链接。

另一个是externalResourcesRequired="true"容器元素上的设置将具有禁用该容器内容的渐进显示的效果,如果该容器包含引用外部资源的元素。换句话说,通过链接到另一个文档并设置该属性,您可以禁用 SVG 的流式传输行为,这可能会在加载事件触发时强制一个完整的 DOM。

于 2012-05-21T03:35:33.383 回答