IE9 svg onload 访问父/顶部

发布于 2024-11-29 20:51:09 字数 350 浏览 3 评论 0原文

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情独悲 2024-12-06 20:51:09

好的。经过一个不眠之夜我终于想通了。没有任何说明,IE9 似乎会以 Quirks 模式呈现页面。在 Quirks 模式下,SVG 显然是沙盒的,SVG 内的任何 ECMAScript 都无法访问父文档。

每当 IE9 被迫使用 IE9 标准实际渲染页面时,一切都会像魅力一样发挥作用。

用于

<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

强制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

<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

to force IE9 standard mode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文