fix(compiler-dom): fix in-browser attribute value decoding w/ html tags

fix #3001
This commit is contained in:
Evan You
2021-05-27 17:25:34 -04:00
parent a641eb201f
commit 669037277b
2 changed files with 52 additions and 3 deletions

View File

@@ -2,7 +2,15 @@
let decoder: HTMLDivElement
export function decodeHtmlBrowser(raw: string): string {
;(decoder || (decoder = document.createElement('div'))).innerHTML = raw
return decoder.textContent as string
export function decodeHtmlBrowser(raw: string, asAttr = false): string {
if (!decoder) {
decoder = document.createElement('div')
}
if (asAttr) {
decoder.innerHTML = `<div foo="${raw.replace(/"/g, '&quot;')}">`
return decoder.children[0].getAttribute('foo') as string
} else {
decoder.innerHTML = raw
return decoder.textContent as string
}
}