Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Предотвращение загрузки картинок на странице (https://javascript.ru/forum/misc/19227-predotvrashhenie-zagruzki-kartinok-na-stranice.html)

yarosh 29.07.2011 13:02

Предотвращение загрузки картинок на странице
 
Необходимо сделать чтобы картинки которые находятся на странице не загружались браузером. В идеале это должно касаться только тех картинок которые расположены на других сайтах. Пробовал отключить их через смену атрибута 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>?

розовый слоник 29.07.2011 13:04

setAttribute - лучше не использовать как по мне :)

вот так должно работать
imgsrc[i].src = '';

вставить все равно куда можно код будет работать везде. но если вставите в хед то нужно сделать window.onload так как загрузка страницы происходит синхронно. По этому как только браузер дойдет до вашего скрипта боди еще будет пусто и скрипт не отработает так как length будет равно нулю.
но можете скрипт вставить вконец боде и тогда не потребуется ждать загрузки страницы

yarosh 29.07.2011 13:07

Цитата:

Сообщение от розовый слоник (Сообщение 116046)
setAttribute - лучше не использовать как по мне :)

вот так должно работать
imgsrc[i].src = '';

Так тоже пробовал не хочет работать.
Я вставляю после <body>. Может надо где-то в другом месте?

розовый слоник 29.07.2011 13:10

поставте тогда debugger и проверьте что у вас получается) и сразу все будет ясно) и вообще учитесь отлаживать скрипты

yarosh 29.07.2011 13:17

<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) не показывает ошибку

розовый слоник 29.07.2011 13:26

ну да она и не будет показыть ошибку потому что var imgsrc = [] то есть пустой массив)
я конечно не проверял но в этом уверен
поставте слово debugger после объявление переменной imgsrc и посмотрите чему она равна

melky 29.07.2011 13:28

вставлять перед закрывающим body

как я понял, вы так поставили

<body>
*!*<script></script>*/!*

....
</body>

yarosh 29.07.2011 14:32

Вставлен перед </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>


В консоле показал
Цитата:

imgsrc: NodeList[294]

yarosh 29.07.2011 15:30

С заменой уже разобрался
а как выделить src которые идут на сторонние ресурсы и заменить только их. Как я понимаю то все картинки находящиеся на других сайтах будут начинаться в src с "http://" но при этом будут отличаться началом от "http://site.com/"

PS
Странно похоже несмотря на то что заменил все ссылки картинок, картинки похоже всё равно загружаются браузером, а надо добиться чтобы этого небыло, но как это сделать?

yarosh 29.07.2011 16:23

Со скриптом уже разобрался, но он не работает так как хотелось бы.
Картинки внешние меняет, НО браузер всё равно подгружает картинки которые были зменены скриптом.

Кто нибудь знает как можно запретить загрузку картинок браузеру через JAVAscript?


Часовой пояс GMT +3, время: 08:21.