html - 外部 svg 文件已加载但未显示
问题描述
我想在运行时将外部 svg 文件加载到我的 Html 文档中。正如这里所讨论的,我使用一个<object type="image/svg+xml"></object>
并通过 Javascript 更改数据属性。
我的 html 看起来像这样(将 cross.svg 文件粘贴在下面以供参考):
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<object id="svg_verified" type="image/svg+xml" data="cross.svg"></object>
<svg>
<circle cx="50" cy="50" r="50" fill="#111"/>
<rect y="-5" width="140" height="10" fill="white" transform="rotate(45)"/>
<rect y="-5" width="140" height="10" fill="white" transform="translate(100,0) rotate(135)"/>
</svg>
</body>
</html>
加载的页面如下所示:
但是,我可以在检查器中看到 svg 文件已加载:
如何正确渲染对象中的 SVG 文件?
解决方案
你失踪了xmlns="http://www.w3.org/2000/svg"
。MIME 类型xmlns
需要该属性。image/svg+xml
是否需要 'xmlns' 和 'version' 等 SVG 参数?
<object type="image/svg+xml" data="https://svgshare.com/i/GhM.svg"></object>
<!---->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<circle cx="50" cy="50" r="50" fill="#111"/>
<rect y="-5" width="140" height="10" fill="white" transform="rotate(45)"/>
<rect y="-5" width="140" height="10" fill="white" transform="translate(100,0) rotate(135)"/>
</svg>
推荐阅读
- r - 使用 apply 函数加速嵌套 for 循环
- javascript - For-of 循环默认迭代器函数
- swift - Swift - 全局访问的类的依赖注入
- c# - 为什么不合并 2 个 pdf 文件?
- sql - 按 MONTH 分组日期时如何将月份从 INT 转换为 VARCHAR
- linux - M4 未扩展 .m4 文件中的所有宏
- set - 从合金中的集合中减去子集
- python - z3py:尝试使用集合成员身份时出现段错误
- angularjs - AngularJS - 如何对使用 ng-repeat 创建的表进行排序
- python - Python:为什么用 b = list(a) 复制列表后 id 会发生变化