2013-09-29 2 views
1

Я пытаюсь предотвратить прямое изображение с экрана. Я нашел то, что кажется приемлемым, что включает в себя поместить изображение src в другой атрибут, а затем переместить его в атрибут src, когда требуется загрузить изображение.Отложить загрузку изображений

Я вставив некоторые изображения в JavaScript

'<img src="img/grey.png" data-original="'+image.src+'" />'

В Chrome DevTools однако я могу видеть изображения загружаются (до Я даже реализован код, чтобы загрузить их).

Chrome DevTools Resources Tab Chrome DevTools Network Tab Code

Почему это и как я могу избежать их загружается полностью?

У меня работает с отключенным кешем.

Подробнее:

Изображения поступают из RSS-каналы, загруженные Google Feeds API.

feedpointer.load(function (result) { 
    if (!result.error) { 
     $.each(result.feed.entries, function (e, val) { 
      tempContent = $('<div>' + val.content + '</div>'); 
      image = tempContent.find('img'); 
      $('.col_'+id).html('<img src="img/grey.png" data-original="'+image.src+'" />'); 
     }); 
    } 
} 

Это суть. Я вижу с DevTools, что изображение абсолютно нигде на странице. Я не думаю, что Feed API загрузит их, поскольку они содержатся в тексте.

Я считаю, что tempContent = $('<div>' + val.content + '</div>'); может быть оскорбительным кодом для загрузки изображений. Есть ли альтернатива, чтобы пересечь строку как DOM?

+0

Изображения, которые упоминаются только в атрибуте данных не будет загружать, так что вы делаете что-то иначе не так? – adeneo

+0

Просьба показать любой другой соответствующий код. – Jackson

+0

возможно релевантно: http://stackoverflow.com/questions/5117421/how-to-load-images-dynamically-or-lazily-when-users-scrolls-them-into-view –

ответ

0

Вы можете использовать такую ​​функцию, которая не может быть совершенным, но я думаю, что это достаточно хорошо:

function hideImgSrc(html){ 
    return html.replace(/<img[^>]*?>/gi, function(match){ 
    return match.replace(/\bsrc(\s*=\s*['"])/gi, function(match, after){ 
     return 'data-original' + after; 
    }); 
    }); 
} 

hideImgSrc('<img src = "hello">') --> "<img data-original = "hello">" 
Смежные вопросы