Предотвращение загрузки картинок на странице
Необходимо сделать чтобы картинки которые находятся на странице не загружались браузером. В идеале это должно касаться только тех картинок которые расположены на других сайтах. Пробовал отключить их через смену атрибута src но ничего не получилось:
<script type="text/javascript"> var imgsrc = document.getElementByTagName('img'); for (var i = 0; i < imgsrc.lenth; i++) { //imgsrc[i].src='x'; imgsrc[i].setAttribute('src', ''); } </script> ЗЫ Где вставлять такой код? в <head>, после <body> или перед </body>? |
setAttribute - лучше не использовать как по мне :)
вот так должно работать imgsrc[i].src = ''; вставить все равно куда можно код будет работать везде. но если вставите в хед то нужно сделать window.onload так как загрузка страницы происходит синхронно. По этому как только браузер дойдет до вашего скрипта боди еще будет пусто и скрипт не отработает так как length будет равно нулю. но можете скрипт вставить вконец боде и тогда не потребуется ждать загрузки страницы |
Цитата:
Я вставляю после <body>. Может надо где-то в другом месте? |
поставте тогда debugger и проверьте что у вас получается) и сразу все будет ясно) и вообще учитесь отлаживать скрипты
|
<script type="text/javascript"> var imgsrc = document.getElementsByTagName('img'); for (var i = 0; i < imgsrc.lenth; i++) { imgsrc[i].src = ''; //imgsrc[i].setAttribute('src', ''); } </script> </body> </html> какой debugger поставить? В консоле JAVAscript (Google Chrome) не показывает ошибку |
ну да она и не будет показыть ошибку потому что var imgsrc = [] то есть пустой массив)
я конечно не проверял но в этом уверен поставте слово debugger после объявление переменной imgsrc и посмотрите чему она равна |
вставлять перед закрывающим body
как я понял, вы так поставили <body> *!*<script></script>*/!* .... </body> |
Вставлен перед </body>
<script type="text/javascript"> var imgsrc = document.getElementsByTagName('img'); debugger; for (var i = 0; i < imgsrc.lenth; i++) { imgsrc[i].src = ''; //imgsrc[i].setAttribute('src', ''); } </script> В консоле показал Цитата:
|
С заменой уже разобрался
а как выделить src которые идут на сторонние ресурсы и заменить только их. Как я понимаю то все картинки находящиеся на других сайтах будут начинаться в src с "http://" но при этом будут отличаться началом от "http://site.com/" PS Странно похоже несмотря на то что заменил все ссылки картинок, картинки похоже всё равно загружаются браузером, а надо добиться чтобы этого небыло, но как это сделать? |
Со скриптом уже разобрался, но он не работает так как хотелось бы.
Картинки внешние меняет, НО браузер всё равно подгружает картинки которые были зменены скриптом. Кто нибудь знает как можно запретить загрузку картинок браузеру через JAVAscript? |
Похоже никто не знает как это сделать или это в принципе невозможно?
|
Цитата:
|
Можно конечно извратиться на что-то подобное:
window.onload=function(){ var i=document.getElementsByTagName('img'), t; (function img(){ while(i[0])i[0].parentNode.removeChild(i[0]); t=setTimeout(img,1) })() return function(){clearTimeout(t)} }()но оно всё равно будет грузиться, ибо задача в принципе не имеет смысла в нормальной ситуации: откуда на твоём сайте взяться вдруг не нужным картинкам? |
Картинки не мне не нужны, а гуглу надо чтобы страница быстрее грузилась
|
0_o Э...мнм.. кхм..?
|
Что-то не вижу что onabort поможет т.к. он не запрещает(отменяет) заргузку картинки, а реагирует когда останавливается загрузка картинки и выполняет соответствующий код
|
загрузку картинок нельзя запретить через JavaScript. Aetae тебе уже написал код, который удалит все картинки со страницы.
|
Цитата:
|
Цитата:
|
Цитата:
Так и вот, задача стоит такая, есть лента из множества постов (товаров), каждый пост раскрывается в подробнее, и там уже есть большие фотографии, но по безлаберности разработчика, эти большие фотографии выдаются от php в самой ленте, что недопустимо вот и задача... - как-то вначале на яваскрипте обработать всё то, что выдал мне php, поубирать эти большие картинки, оставить лишь миниатюрные, так чтобы большие картинки не грузились, и лишь затем пустить на исполнение оставшегося и обработанного контента браузером. |
Может заняться разумным и все-таки править серверную часть?
Ну до абсурда доходит. Да и для простенького магазина не нужна CMS чья-то, можно и самому написать. |
mister_maxim, смотри выше, уже сказали - нельзя на js отменить загрузку. Ну вообще, есть один способ, но я бы его не рекомендовал. И даже рассказывать о нем не буду )
|
Браузер парсит ХТМЛ и тут же отправляет запросы если встретит тег img.
Решение в том что бы изменить такое поведение ). Например с помощью document.stop и запросом из JS получить данную страницу как текст и регудярками подправить картинки .) В принципе одна из крайних форм извращений нотдолжно работать. Или же через document.write открыть хтмл коментарий а потом закрыть это также поможет обойти парсер. Естественно комментарий нужно будет от фильтровать и вернуть в страницу. Карма не найдена =( |
Цитата:
![]() Выкручусь на JS |
Цитата:
Цитата:
Есть даже готовый плагин для этого. Не помню что он делает. Кажется lazyload картинок. |
Цитата:
|
Еще можно выкрутиться заменив теги img на бакграунды. Браузер скачивает картинки всех img сразу а из того что прописано стилями качает только то, что не display:none. То есть в таком случае он будет скачивать картинки по мере раскрытия комментариев. Только у картинок заданных через стили будет неудобно отслеживать событие загрузки. Конечно самое разумное делать это на сервере. Только заменять картинки надо всё равно на сервере.
|
Часовой пояс GMT +3, время: 11:53. |