我在项目中使用角度。但这没关系)
我必须使用DOMParser在一个字段中检查和编辑一些数据(.Content
)
一切都还可以......我已经安装了iOS 7的iPad 3并且很惊讶......
为什么DOMParser
无法在iOS 7上运行(但适用于iOS 8 +)?
如何在iOS 7上解决此问题?也许有一些解决方法?
以下是我的代码的一部分:
var parser = new DOMParser();
var doc = parser.parseFromString('<div id="fetchContent">' + $scope.news.Content + '</div>', "text/html");
...
$scope.news.Content = doc.getElementById('fetchContent').innerHTML;
如果我删除此代码 - 应用程序正常工作,但DOMParser似乎引发了错误......
答案 0 :(得分:3)
某些浏览器不支持此功能。要修补此问题,我们可以使用以下javascript代码:
* 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));
以上脚本摘自mozilla的网站here。