使用document.implementation.createHTMLDocument对html进行转换

document.implementation.createHTMLDocument会创建一个document对象,而且同时不会影响当前html的内容。但是,这有什么用呢?

例如可以使用这个方法对html字符串进行一些处理。如下代码是去除给定的html字符串中的<style><a><img>标签。

function handleHTML(html) {
    var body = document.implementation.createHTMLDocument('').body;

    body.innerHTML = html;

    $(body).find('a, img, style').remove(); //假如可以使用jquery操作DOM

    return body.innerHTML;
}

当然,在使用这个之前,最好检测一下浏览器是否支持这个方法。如下检测代码参考自jQuery源码。

var isSupportCreateHTMLDocument = ( function() {
    var body = document.implementation.createHTMLDocument( "" ).body;
    body.innerHTML = "<form></form><form></form>";
    return body.childNodes.length === 2;
} )();
如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注