|
|
@@ -3,12 +3,14 @@
|
|
|
import { inBrowser } from 'core/util/index'
|
|
|
|
|
|
// check whether current browser encodes a char inside attribute values
|
|
|
-function shouldDecode (content: string, encoded: string): boolean {
|
|
|
- const div = document.createElement('div')
|
|
|
- div.innerHTML = `<div a="${content}"/>`
|
|
|
- return div.innerHTML.indexOf(encoded) > 0
|
|
|
+let div
|
|
|
+function getShouldDecode (href: boolean): boolean {
|
|
|
+ div = div || document.createElement('div')
|
|
|
+ div.innerHTML = href ? `<a href="\n"/>` : `<div a="\n"/>`
|
|
|
+ return div.innerHTML.indexOf(' ') > 0
|
|
|
}
|
|
|
|
|
|
-// #3663
|
|
|
-// IE encodes newlines inside attribute values while other browsers don't
|
|
|
-export const shouldDecodeNewlines = inBrowser ? shouldDecode('\n', ' ') : false
|
|
|
+// #3663: IE encodes newlines inside attribute values while other browsers don't
|
|
|
+export const shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false
|
|
|
+// #6828: chrome encodes content in a[href]
|
|
|
+export const shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false
|