我生成一个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")
和类似的选择器但没有成功。
有什么想法吗?
谢谢!
答案 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)