我想將 svg 元素轉換為 base64 字串。
我遵循以下教程:https ://thewebdev.info/2021/08/28/how-to-convert-inline-svg-to-base64-string-with-javascript/
這是我使用的代碼:
HTML:
<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>
打字稿:
constructor (
@Inject(DOCUMENT) document: Document
) {
document.querySelector("svg")
}
ngOnInit() {
const s = new XMLSerializer().serializeToString(document.querySelector("svg"))
const encodedData = window.btoa(s)
console.log(encodedData)
}
但我在 vs 代碼中收到以下錯誤訊息.serializeToString(document.querySelector("svg")):
'SVGSVGElement | 型別的引數 null' 不可分配給“節點”型別的引數 TS 2345
uj5u.com熱心網友回復:
這里的問題是呼叫 ngOnInit 時未初始化 svg,因此 querySelector 回傳 null。
將您的代碼移動到 ngAfterViewInit 中,如下所示:-。
ngAfterViewInit() {
const svg = document.querySelector("svg");
if (svg) {
const s = new XMLSerializer().serializeToString(svg)
const encodedData = window.btoa(s)
console.log(encodedData)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475352.html
標籤:javascript 有角度的 打字稿 svg base64
