bra*_*r19 6 javascript mobile-safari domparser ios angularjs
我在我的项目中使用角度.但没关系)
我必须使用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;
Run Code Online (Sandbox Code Playgroud)
如果我删除此代码 - 应用程序正常工作,但与DOMParser似乎它引起了错误...
某些浏览器不支持此功能。为了修补这个问题,我们可以使用以下 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));
Run Code Online (Sandbox Code Playgroud)
上面的脚本是从 mozilla 的网站上提取的。
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |