如何从嵌入的.svg文件</div>访问HTML中的<div>元素

时间:2011-12-21 18:11:25

标签: html5 svg internet-explorer-9

我有一个html页面有几个&lt; div&gt; 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中的元素?

1 个答案:

答案 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需要几分钟才能加载。