|
|
@ -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 |
|
|
|