Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   простенький скрипт(листалка фоновых изображений) не работает в хроме и сафари (https://javascript.ru/forum/misc/14496-prostenkijj-skript-listalka-fonovykh-izobrazhenijj-ne-rabotaet-v-khrome-i-safari.html)

LostSenSS 19.01.2011 11:20

простенький скрипт(листалка фоновых изображений) не работает в хроме и сафари
 
мой первый скриптик. сильно не смейтесь :)
суть - листалка картинок, заданных фоном хедеру.
две кнопки - ссылки - вперед и назад.

<script type="text/javascript">
    	var n=0;
   	 	var name  = new Array();
   		name[0] = 1;
	    name[1] = 2;
	    name[2] = 3;
	    var count = (name.length) - 1;
        window.onload = function() {
            document.getElementById('forward').onclick=function() {       	
            	n++;
            	if(n> count) n=0;
            	if(n< 0) n= count;
                document.getElementById('header').style.cssText='background:url("images/mainphoto'+name[n]+'.jpg")';        
            }
            document.getElementById('backward').onclick=function() {
            	n--;
            	if(n> count) n=0;
            	if(n< 0) n= count;
                    document.getElementById('header').style.cssText='background:url("images/mainphoto'+name[n]+'.jpg")';                
            }	  
        }
</script>
все работает в лисе и опере, но в хроме и сафари - нет.
В чем может быть дело?
Как я понимаю дело именно в строчке изменения css, потому что хром пытается вывести картинку с названием mainphotoundefined.jpg
т.е. не определяется переменная n

ksa 19.01.2011 11:31

Работает! :D

LostSenSS 19.01.2011 11:38

Цитата:

Сообщение от ksa (Сообщение 88626)
Работает! :D

Где работает? В хроме и сафари?

ksa 19.01.2011 16:24

Работает.

ksa 19.01.2011 16:25

LostSenSS, посмотри как используется бекграунд в объектной модели...
http://htmlbook.ru/css/background
Почти в самом низу...

LostSenSS 19.01.2011 16:50

Цитата:

Сообщение от ksa (Сообщение 88671)
LostSenSS, посмотри как используется бекграунд в объектной модели...
http://htmlbook.ru/css/background
Почти в самом низу...

[window.]document.getElementById("elementID").style.backgro und

попробовал писать window вместо document. и вместе с ним.
и писать background вместо cssText.

так не работает даже в лисе с оперой :/

x-yuri 19.01.2011 17:10

во-первых, пиши так:
document.getElementById('header').style.background = 'url(...)';
во-вторых, учись отлаживать, пишешь в какой-нибудь строчке скрипта слово debugger и браузер остановит выполнение в этом месте, если ты перед этим откроешь "Инструменты разработчика"

LostSenSS 19.01.2011 17:25

Цитата:

Сообщение от x-yuri (Сообщение 88685)
во-первых, пиши так:
document.getElementById('header').style.background = 'url(...)';
во-вторых, учись отлаживать, пишешь в какой-нибудь строчке скрипта слово debugger и браузер остановит выполнение в этом месте, если ты перед этим откроешь "Инструменты разработчика"

переписал на
document.getElementById('header').style.background ='url("images/mainphoto'+name[n]+'.jpg")'; debugger
такой вариант работает в опере и лисе но по прежднему не работает в сафари и хроме.
ошибка следующая -
Failed to load resource: the server responded with a status of 404 (Not Found)
оно и понятно, вместо значения переменной в имя файла подставляется undefined

x-yuri 19.01.2011 18:20

Цитата:

Сообщение от LostSenSS
оно и понятно, вместо значения переменной в имя файла подставляется undefined

отлично
console.log(name, n);

и смотришь в консоль "Инструментов разработчика"

Aetae 19.01.2011 18:21

>>>> if(n< 0) n= count; <<<<


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