----------代码-------
<!DOCTYPE html>
<html>
<head>
<title>清除不使用的图片</title>
</head>
<body>
选择图片文件夹<input type="file" value="s" id="imgsPath" />
.css与.html内容<textarea id="content" ></textarea>
<button οnclick="startCls();">开始整理</button>
<div>
注意本程序逻辑是查找输入框中的html,是否有css中的url或是html标签中的src使用到图片,如果没有使用的图片将被删除,如果需要检测多个页面,请把所有的页面内容复制到输入框中
</div>
<script>
function getObj(id) {
return 'string' == typeof id ? document.getElementById(id) : id;
}
function startCls() {
var img = getObj('imgsPath').value;
var txt = getObj('content').value;
if (!img || !txt) {
alert('请选择img文件/加入内容');return;
}
var imgsName = {};
//css与html匹配合并,使用|来连结,返回会出现二种情况:"background:url(d.gif),d.gif,"或"<img src="dd.gif">,,dd.gif",全局匹配总是在第一个,第二个是html子匹配,第三个是css的子匹配.
var urlRe = /background(?:\-image)? *\:[^\:;\}]*url *\([ "']*(?:.*\/)?([^\/]+\.(?:gif|jpg|png))['" ]*\)/gi;
var max = 150, match;
while (match = urlRe.exec(txt)) {
if (--max < 0) {
alert('死环');
break;
}
imgsName[match[1]] = 1;
}
max = 150;
var srcRe = /\s+src\s*\=\s*["']?(?:[^"' <>]*\/)?([^\/"'<>]+\.(?:gif|jpg|png))['" ]/ig;
while (match = srcRe.exec(txt)) {
if (--max < 0) {
alert('死环');
break;
}
imgsName[match[1]] = 1;
}
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fc = new Enumerator(fso.GetFile(img).parentFolder.files);
for (; !fc.atEnd(); fc.moveNext()) {
if ( ('.gif.jpg.png.'.indexOf('.' + fso.GetExtensionName(fc.item().name).toLowerCase() + '.') > -1) && !imgsName[fc.item().name]) {
try{
fso.DeleteFile(fc.item().Path, 1);
} catch(e) {
alert('删除图片出错:' + e.description);
}
}
}
alert('清除结束');
}
</script>
</body>
</html>---------说
明--------
只支持单个html文件与css分析,多个页面可能使用到的图片,只能手工合并到输入框,如果css背景和img类的src(包含input)都没有使用到,将删除此图片.