我想访问SVG文件的DOM(让我们称之为/img/my_image.svg
)。我知道实现这个目标的两种方法:
1。通过object
代码
<object id="my_image" data="/img/my_image.svg" type="image/svg+xml" style="height: 100%">
Image can't be displayed
</object>
JS代码:
$('#my_image').on('load', function () {
$(this.contentDocument).find('whatever').doWhatever();
});
2。通过XMLSerializer
<div id="my_image"></div>
JS代码:
$.get("/img/my_image.svg", function (data) {
$('#my_image').html(new XMLSerializer().serializeToString(data.documentElement));
$('#my_image').find('whatever').doWhatever();
});
问题:
答案 0 :(得分:0)
我使用过SVG并使用了对象标签,但我也通过AJAX使用了SVG。但是ajax请求会发生什么,如果代码太大,可能会花费相当多的时间,甚至可能超过传输限制(就像我已经发生的那样),代码到达时不完整。
一般来说,这只是一个偏好问题
答案 1 :(得分:0)
经过一段时间的游戏后,我的调查结果如下:
<强> 1。通过object
代码
为SVG DOM创建一个新文档
所有选择器必须使用该新文档的上下文,例如:
$('#my_id_in_svg', '#my_image').doWhatever();
<强> 2。通过XMLSerializer
基于此,我想我将从现在开始使用第二种方法。