与从嵌入或对象标签元件工作(Work with elements from embed or obj

2019-07-18 07:41发布

我插在与嵌入或对象标签页面中的SVG图形:

<object data="graphics.svg" type="image/svg+xml" id="graphics" />

图像被正确加载,我可以看到它的SVG结构与浏览器的调试器。 我看到所有的元素ID和属性,但在我看来是没有办法选择与我的网页上的脚本这些元素:

$('#graphics path').length; // 0 (jQuery)
$('path').length; // 0 anyway

是否可以浏览图形元素像往常一样?

Answer 1:

它会显示为一个单独的文件,类似于一个iframe。 你可以像这样访问:

var svg = document.getElementById('graphics').contentDocument

请注意,等到SVG文件加载是重要的; 你可能想要把你的代码的object元素onload事件处理程序,如下所示:

<object data="graphics.svg" type="image/svg+xml" id="graphics" />
<script>
  document.getElementById('graphics').addEventListener('load',function(){
    var svg = document.getElementById('graphics').contentDocument
    // do stuff, call functions, etc.
  })
</script>


文章来源: Work with elements from embed or object tag