IE9 svg onload 访问父/顶部
在 IE9 中,当使用(对象)标签嵌入 SVG 时,嵌入 SVG 中的任何 ECMAScript 都无法访问父/顶级 HTML 文档。不过,这适用于任何其他浏览器。 仅使用 Linux 进行开发直到今天我才意识到这一点。问题是,我们所有的 SVG 都包含一个 onload 方法来向父 HTML 文档发出信号,表明 SVG DOM 已准备就绪。不幸的是,除了我认为非常不优雅的轮询之外,没有其他方法可以确定 SVG 的 DOM 是否准备好。 那么...有任何已知的解决方法吗?也就是说,从 IE9 中的 SVG 访问父 HTML 文档? 或任何其他跨浏览器/跨平台方法来确定 SVG 是否完全加载,不涉及轮询和超时,但涉及回调? 我不想使用像 jQuery SVG 插件这样成熟的框架。
in IE9, when a SVG is embedded using (object) tags, any ECMAScript embedded inside the SVG cannot access the parent / top HTML document. this works for any other browser, though.
developing using linux only i never realized that until today. the problem is, all our SVGs contain a onload method to signal to the parent HTML document that the SVG DOM is ready. unfortunately, there is no other way to determine whether the SVG's DOM is ready except for polling which i consider highly inelegant.
so ... is there any known workaround for this? that is, access the parent HTML document from within a SVG in IE9?
or any other cross-browser / cross plattform method to determine whether a SVG is completely loaded which does NOT involve polling and timeouts but callbacks?
i'd rather not use a fully blown framework for this like the jQuery SVG plugin.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的。经过一个不眠之夜我终于想通了。没有任何说明,IE9 似乎会以 Quirks 模式呈现页面。在 Quirks 模式下,SVG 显然是沙盒的,SVG 内的任何 ECMAScript 都无法访问父文档。
每当 IE9 被迫使用 IE9 标准实际渲染页面时,一切都会像魅力一样发挥作用。
用于
强制IE9标准模式
ok. after a sleepless night i finally figured it out. without any instructions IE9 seems to render pages in Quirks mode. when in Quirks mode SVGs are obviously sandboxed and any ECMAScript inside the SVG cannot access the parent document.
whenever IE9 is forced to actually render a page using IE9 standards everything works like a charm.
use
to force IE9 standard mode