在iframe中引用d3中的div

时间:2015-02-03 23:03:13

标签: javascript iframe d3.js

我生成一个iframe并用div和d3脚本填充它以在其中呈现svg内容。 类似的东西:

<iframe id="content-frame""> <head></head> <body> <div id="target"></div> <script> ... d3 code here ... </script> </body> </iframe>

在D3脚本中我通常选择: d3.select("#target").append("svg")... 但它并没有在div中添加svg。

如果我运行d3.select("#content-frame").append("svg"),它会将svg正确地放在iframe中。

我已经尝试了d3.select("#content-frame #target").append("svg")和类似的选择器但没有成功。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

要编辑iframe正文,您需要使用内容窗口属性。内容Window属性返回由iframe元素生成的Window对象(通过window对象,您可以访问文档对象,然后访问文档元素中的任何一个)。

var iframeElementx = document.getElementById("MyiframeID"),
    iframeElementy = (iframeElementx.contentWindow || iframeElementx.contentDocument),
    iframeElementz = iframeElementy.document.body;
						
var svg = d3.select(iframeElementz)