// 在页面中找到第一个最小边大于290的图片,如果1秒内找不到,则返回空(不带图分享)。 var getSharePreviewImage = function (cb) { var isCalled = false; var callCB = function (_img) { if (isCalled) { return; } isCalled = true;
cb(_img); }; var _allImgs = _WXJS('img'); if (_allImgs.length == 0) { returncallCB(); } // 过滤掉重复的图片 var _srcs = {}; var allImgs = []; for (var i = 0; i < _allImgs.length; i++) { var _img = _allImgs[i];
// 过滤掉不可以见的图片 if (_WXJS(_img).css('display') == 'none' || _WXJS(_img).css('visibility') == 'hidden') { // _log('ivisable image !! ' + _img.src); continue; } if (_srcs[_img.src]) { // added } else { _srcs[_img.src] = 1; // mark added allImgs.push(_img); } } var results = []; var img; for (var i = 0; i < allImgs.length && i < 100; i++) { img = allImgs[i]; var newImg = newImage(); newImg.onload = function () { this.isLoaded = true; var loadedCount = 0; for (var j = 0; j < results.length; j++) { var res = results[j]; if (!res.isLoaded) { break; } loadedCount++; if (res.width > 290 && res.height > 290) { callCB(res); break; } } if (loadedCount == results.length) { // 全部都已经加载完了,但还是没有找到。 callCB(); } }; newImg.src = img.src; results.push(newImg); } setTimeout(function () { for (var j = 0; j < results.length; j++) { var res = results[j]; if (!res.isLoaded) { continue; } if (res.width > 290 && res.height > 290) { callCB(res); return; } } callCB(); }, 1000); };