【发布时间】:2021-11-08 20:11:47
【问题描述】:
我想为 Github README 创建一个徽章(例如 this)。我创建了一个函数来使用 JavaScript 从 URL 获取 GET 值并将其放入 SVG,当我在本地尝试它时可以使用,但如果我将它放入 Markdown 文件中,它不会更改数字。

index.svg:
<svg width="200" height="75" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
style="-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;">
<g>
<rect x="0" y="0" width="125" height="75" style="fill:#F84949F5"></rect>
<text x="0" y="37.5" font-family="Segoe UI" font-size="16" font-weight="bold" fill="white">
<tspan x="62.5" text-anchor="middle" dy="-3.5%">I started</tspan>
<tspan x="62.5" text-anchor="middle" dy="25%">programming</tspan>
</text>
<rect x="124" y="0" width="75" height="75" style="fill:#F84949"></rect>
<text x="124" y="75" font-family="Segoe UI" font-size="13" fill="white" font-weight="bold">
<tspan x="162.5" text-anchor="middle" y="45.891675" font-size="40" id="years-number">5</tspan>
<tspan x="162.5" text-anchor="middle" y="67.5" font-weight="bold">years ago</tspan>
</text>
</g>
<script xlink:href="script.js" />
</svg>
script.js:
function changeNumber() {
document.getElementById("years-number").textContent = getValue;
}
let getValue;
window.addEventListener("load", function () {
let name="years";
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
getValue = decodeURIComponent(name[1]);
changeNumber();
});
在浏览器中的输出: correct output
markdown 中的输出(正确的一个): wrong output
我该如何解决?
【问题讨论】:
-
github 是 https,我不认为你可以通过 http:// 加载远程资源,你得到混合内容的问题,你可能需要添加 ssl
-
尝试将 svg 放入 svg 元素中,如下所示:stackoverflow.com/questions/5378559/including-javascript-in-svg
-
我尝试使用带有 SSL 的网站,但没有任何变化@LawrenceCherone
-
甚至没有将 js 放在 svg 元素中它可以工作@enxaneta
-
script.js 在 index.svg 中,所以它不会被执行。其他图标必须以不同的方式工作。也许他们使用 SMIL 或 CSS 动画。
标签: javascript github svg markdown