12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /**
- * DOMParser HTML extension
- * 2012-09-04
- *
- * By Eli Grey, http://eligrey.com
- * Public domain.
- * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
- *
- * SPDX-FileCopyrightText: 2012 Eli Grey, http://eligrey.com
- * SPDX-License-Identifier: CC0-1.0
- */
- /*! @source https://gist.github.com/1129031 */
- /*global document, DOMParser*/
- (function(DOMParser) {
- "use strict";
- var
- DOMParser_proto = DOMParser.prototype
- , real_parseFromString = DOMParser_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) {}
- DOMParser_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 real_parseFromString.apply(this, arguments);
- }
- };
- }(DOMParser));
|