У меня есть изображение / медиа tumblr, который загружает 12-25 изображений на первой странице, которые могут быть довольно большими.
У меня есть jQuery, делающий различные косметические вещи с макетом и изображениями, в частности, я проверяю каждый пост, чтобы увидеть, является ли это фотосет, который Tumblr использует как iframe.
Визуально можно увидеть галерею миниатюр предварительного просмотра фотосета, при нажатии на миниатюру открывается слайд-шоу лайтбокса с полноразмерной фотографией.
Мой твик ожидает загрузки iframe, удаляет галерею миниатюр и заменяет ее первым изображением в галерее с полным разрешением.
Вот мой код:
$(".post_relative").each(function () {
var post_relative = $(this);
var photoset = post_relative.find('.html_photoset');
if(photoset.length){
var myFrame = photoset.find("iframe");
myFrame.load(function(){
console.log("frame loaded");
var newCover = myFrame.contents().find('.photoset').children(':first-child').children(':first-child');
myFrame.contents().find('img').each(function(){
$(this).hide();
})
newCover.children(':first-child').remove();
var psPre = newCover.attr("href")+ '?' + (Math.random() * 1000000);
newCover.append("<img src='"+ psPre +"' alt='Cover Page' />");
var psHeight = newCover.find('img');
psHeight.load(function(){
if (psHeight.height()>heightRef){
psHeight.height(heightRef);
}
newCover.detach();
post_relative.append(newCover);
myFrame.hide();
})
})
}
Во всяком случае, это работает, 75% времени. Я могу только представить, что Tumblr иногда перегружен, или, может быть, на странице слишком много информации?
Что делает jQuery непоследовательным? Есть ли код jQuery, который позволяет мне дважды проверить, что код выполнен правильно?
Вы можете видеть, работает это или не работает здесь:
http://syndex.me
Если он не работает, третий пост будет выглядеть так:
Если все работает правильно, это будет выглядеть так: