From bdf3e73062edbfc3c1ae68b8792962fa95d87148 Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Fri, 3 Oct 2014 14:17:07 -0700 Subject: [PATCH] Wait until big image is loaded before clicking to next image. --- umbra/behaviors.d/instagram.js | 35 +++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/umbra/behaviors.d/instagram.js b/umbra/behaviors.d/instagram.js index 553d059..b6b7d78 100644 --- a/umbra/behaviors.d/instagram.js +++ b/umbra/behaviors.d/instagram.js @@ -10,6 +10,7 @@ var umbraIntervalID = setInterval(umbraScrollInterval,50); var umbraImages; var umbraImageID=0; var umbraImageCount=0; +var umbraBigImage=undefined; function umbraScrollInterval() { @@ -35,22 +36,42 @@ function umbraScrollInterval() { umbraImages[0].click(); umbraImageID++; umbraImageCount=umbraImages.length; + intervalID = setInterval(umbraClickPhotosInterval,200); } - intervalID = setInterval(umbraClickPhotosInterval,200); + } } } function umbraClickPhotosInterval() { + rightArrow = document.querySelectorAll("a.mmRightArrow"); - - if(umbraImageID>=umbraImageCount) { - clearInterval(umbraIntervalID); - umbraState.done=true + + if(umbraIsBigImageLoaded()) { + if(umbraImageID>=umbraImageCount) { + clearInterval(umbraIntervalID); + umbraState.done=true; + } + else { + umbraBigImage = undefined; + rightArrow[0].click(); + umbraImageID++; + } + } +} + +function umbraIsBigImageLoaded(){ + if(umbraBigImage === undefined) { + var imageFrame = document.querySelectorAll("div.Modal div.Item div.iMedia div.Frame"); + if(imageFrame.length>0) { + umbraBigImage = new Image(); + umbraBigImage.src = imageFrame[0].getAttribute("src"); + } + return false; } else { - rightArrow[0].click(); - umbraImageID++; + return (umbraBigImage.naturalWidth !== 0) + } }