带有 use 标签的内联 SVG 停止与最近的浏览器一起工作
Inline SVG with use tag stopped working with recent browsers
我决定最终完成这个网页大约一年了。令我惊讶的是,代码现在显示的方式与以前不同。我将其缩小到使用带有 <use>
标签的内联 SVG,它只是停止在最新的浏览器上工作。我尝试使用最新版本的 Firefox (68.0.1) 和 Opera。 Firefox 是我测试的主要浏览器,但计划在完成后与其他浏览器一起测试(当然)。
!!编辑!!我实际上是在使用一个标识符来引用 svg 文件中的一个符号,但似乎即使没有它它也会停止工作,所以让我们从它开始(示例如下......)。
<!DOCTYPE html>
<html lang="en-US">
<head>
<link rel="stylesheet" href="styles.css">
<meta charset="UTF-8">
</head>
<body>
<div>
TEST TEXT
<svg>
<use href="imgs.svg#tst"></use>
</svg>
</div>
</body>
</html>
<!-- THE ACTUAL SVG FILE CALLED imgs.svg -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg>
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="tst" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</symbol>
</svg>
您 运行 这是来自文件系统而不是网络服务器。就是这个问题。
这是由于最近修复了一个安全漏洞CVE-2015-7186
运行 来自文件系统的限制现在更多了,基本上您不能再从另一个文件引用一个文件。我们正在 bug 1565509 中讨论如何解决这个问题,但由于我们目前匹配 Safari,我不确定我们是否会更改以匹配 Chrome 或 Chrome 是否会更改以匹配我们.
同时,使用网络服务器或将引用的文件转换为 a data uri 并将其嵌入到父文档中。
我决定最终完成这个网页大约一年了。令我惊讶的是,代码现在显示的方式与以前不同。我将其缩小到使用带有 <use>
标签的内联 SVG,它只是停止在最新的浏览器上工作。我尝试使用最新版本的 Firefox (68.0.1) 和 Opera。 Firefox 是我测试的主要浏览器,但计划在完成后与其他浏览器一起测试(当然)。
!!编辑!!我实际上是在使用一个标识符来引用 svg 文件中的一个符号,但似乎即使没有它它也会停止工作,所以让我们从它开始(示例如下......)。
<!DOCTYPE html>
<html lang="en-US">
<head>
<link rel="stylesheet" href="styles.css">
<meta charset="UTF-8">
</head>
<body>
<div>
TEST TEXT
<svg>
<use href="imgs.svg#tst"></use>
</svg>
</div>
</body>
</html>
<!-- THE ACTUAL SVG FILE CALLED imgs.svg -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg>
<svg xmlns="http://www.w3.org/2000/svg">
<symbol id="tst" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</symbol>
</svg>
您 运行 这是来自文件系统而不是网络服务器。就是这个问题。
这是由于最近修复了一个安全漏洞CVE-2015-7186
运行 来自文件系统的限制现在更多了,基本上您不能再从另一个文件引用一个文件。我们正在 bug 1565509 中讨论如何解决这个问题,但由于我们目前匹配 Safari,我不确定我们是否会更改以匹配 Chrome 或 Chrome 是否会更改以匹配我们.
同时,使用网络服务器或将引用的文件转换为 a data uri 并将其嵌入到父文档中。