我有一个html页面有几个< div> html和嵌入式svg中的元素:
<html>
...
<body>
<object id='svgid' data='sample.svg'.../>
<div id="errorMsgs" style="display:none; height:100%; width:100%; overflow:scroll;"/>
<div id="warnings" style="display:none; height:100%; width:100%; overflow:scroll;"/>
</body>
...
</html>
在sample.svg中,我有几个java脚本函数;如果出现任何错误或警告,这些函数应该隐藏整个svg显示并调出&lt; div&gt;元素到可见性。但这不是在IE9中发生的。 sample.svg中可用的DOM文档似乎引用了sample.svg的SVG元素,而不是html&lt; div&gt;元素。如何访问&lt; div&gt; sample.svg中的元素?
答案 0 :(得分:1)
object
元素是nested browsing context。您应该能够使用以下代码访问您的元素:
var errors = parent.document.getElementById(errorMsgs);
var warns = parent.document.getElementById(warnings);
Here's a simple example of the concept。我现在无法在IE9中测试它,但我 t可以在Firefox和Chrome中使用。在IE9中它可以工作,但是有weird bug这意味着SVG需要几分钟才能加载。