jQuery:阻止在解析HTML时加载图片

时间:2018-09-10 04:43:09

标签: javascript jquery regex

我正在制作一个node js应用程序,该应用程序可以分析和下载网络上的图像。但是,在解析htmlString时,jQuery尝试使用src标签加载所有图像,从而导致错误。通常,我会像处理其他元素一样删除img元素,但是我需要能够从特定的img元素中获取并存储img src标签,以便以后使用。如果可能的话,我试图将所有img元素的src标签替换为data-img标签,以便我可以访问存储的url而不必加载每个图像。

    request('example.com', (error, response, htmlString) => { 
        if (!error && response.statusCode == 200) {
            var html = $(htmlString.replace(/(<(\b(style|script|head|link)\b)(([^>]*\/>)|([^\7]*(<\/\2[^>]*>)))|(<\bimg\b)[^>]*>|(\b(background|style)\b=\s*"[^"]*"))/g,"").functionThatReplacesAllImgSrcTagsWithDataImg());
            // How do I replace all src in the img tag with data-img?
            var useLater = [];
            html.find('img.specific__img').each(function(i) {
                useLater.push($(this).attr('data-img'));
            });
        }
    });

1 个答案:

答案 0 :(得分:1)

与其使用正则表达式,不如使用DOMParser来修复HTML字符串-只需遍历与img[src]选择器匹配的元素,设置其{{1 }},并删除其data-img

src