1jQuery(document).ready(function() { 2 if (JSINFO.ACT === "admin") {return;} 3 jQuery('.plugin_caption_figure').each(function(i,e) { 4 let figureElem = jQuery(this).find("img").first(); 5 let figureCaptionElem = jQuery(this).find("figcaption").first(); 6 7 getImageSize(figureElem, function(width, height){ 8 figureElemWidth = width; 9 if (figureElem.attr("width") !== 0 && figureElem.attr("width") !== undefined && figureElem.attr("width") !== false) { 10 figureElemWidth = figureElem.attr('width'); 11 } 12 13 let figureClassList = figureElem.attr('class').split(/\s+/); 14 jQuery(figureClassList).each(function(index){ 15 switch(figureClassList[index]) { 16 case 'medialeft': 17 figureCaptionElem.addClass("medialeft"); 18 figureCaptionElem.css("width", figureElemWidth); 19 break; 20 case 'mediaright': 21 figureCaptionElem.addClass("mediaright"); 22 figureCaptionElem.css("width", figureElemWidth); 23 break; 24 } 25 }); 26 }); 27 }); 28}); 29 30function getImageSize(img, callback){ 31 img = jQuery(img); 32 33 var wait = setInterval(function(){ 34 var w = img.width(), 35 h = img.height(); 36 37 if(w && h){ 38 done(w, h); 39 } 40 }, 0); 41 42 var onLoad; 43 img.on('load', onLoad = function(){ 44 done(img.width(), img.height()); 45 }); 46 47 48 var isDone = false; 49 function done(){ 50 if(isDone){ 51 return; 52 } 53 isDone = true; 54 55 clearInterval(wait); 56 img.off('load', onLoad); 57 58 callback.apply(this, arguments); 59 } 60} 61