0,0 → 1,38 |
/* from https://developer.mozilla.org/en-US/docs/Web/API/DOMParser */ |
/* inspired by https://gist.github.com/1129031 */ |
/*global document, DOMParser*/ |
|
(function (DOMParser) { |
"use strict"; |
|
var |
proto = DOMParser.prototype |
, nativeParse = proto.parseFromString |
; |
|
// Firefox/Opera/IE throw errors on unsupported types |
try { |
// WebKit returns null on unsupported types |
if ((new DOMParser()).parseFromString("", "text/html")) { |
// text/html parsing is natively supported |
return; |
} |
} catch (ex) {} |
|
proto.parseFromString = function(markup, type) { |
if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { |
var |
doc = document.implementation.createHTMLDocument("") |
; |
if (markup.toLowerCase().indexOf('<!doctype') > -1) { |
doc.documentElement.innerHTML = markup; |
} |
else { |
doc.body.innerHTML = markup; |
} |
return doc; |
} else { |
return nativeParse.apply(this, arguments); |
} |
}; |
}(DOMParser)); |