获取文章内的图片列表
// 获取文章内的图片列表
function getImages (str){
var images = [];
var imgReg = /<img.*?(?:>|\/>)/gi;// 匹配图片(g表示匹配所有结果i表示区分大小写)
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;// 匹配src属性
var arr = str.match(imgReg);
console.log('所有已成功匹配图片的数组:' + arr);
if (!arr) {
return null;
}
for (var i = 0; i < arr.length; i++) {
var src = arr[i].match(srcReg);
//获取图片地址
if (src[1]) {
console.log('已匹配的图片地址' + (i + 1) + ':' + src[1]);
images.push(src[1])
}
}
return images
}
图片出错处理,可以重加载指定的图片。指定加载次数
<img src="{path}" onerror="showImgDelay(this,'/images/default-news.png', 2);" alt="图片" />
/**
* 图片出错处理,可以重加载指定的图片。超过重试次数仍不能正常显示的,显示缺省图片。
* 示例<img onerror="showImgDelay(this,'1.jpg',2)" src="1.jpg">
*
* imgObj: img节点对象
* imgSrc: 出错时加载的图片地址
* maxErrorNum: 最大出错次数,防止出现死循环
*/
function showImgDelay(imgObj, imgSrc, maxErrorNum) {
if (maxErrorNum > 0) {
imgObj.onerror = function(){
showImgDelay(imgObj,imgSrc,maxErrorNum-1);
};
setTimeout(function() {
imgObj.src = imgSrc;
}, 500);
} else {
imgObj.onerror = null;
imgObj.src = "/images/default-news.png";
}
}