Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2011, 11:20
Аватар для LostSenSS
Интересующийся
Отправить личное сообщение для LostSenSS Посмотреть профиль Найти все сообщения от LostSenSS
 
Регистрация: 19.01.2011
Сообщений: 14

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

<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

Последний раз редактировалось LostSenSS, 19.01.2011 в 11:33.
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2011, 11:31
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Работает!
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2011, 11:38
Аватар для LostSenSS
Интересующийся
Отправить личное сообщение для LostSenSS Посмотреть профиль Найти все сообщения от LostSenSS
 
Регистрация: 19.01.2011
Сообщений: 14

Сообщение от ksa Посмотреть сообщение
Работает!
Где работает? В хроме и сафари?
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2011, 16:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Работает.
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2011, 16:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

LostSenSS, посмотри как используется бекграунд в объектной модели...
http://htmlbook.ru/css/background
Почти в самом низу...
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2011, 16:50
Аватар для LostSenSS
Интересующийся
Отправить личное сообщение для LostSenSS Посмотреть профиль Найти все сообщения от LostSenSS
 
Регистрация: 19.01.2011
Сообщений: 14

Сообщение от ksa Посмотреть сообщение
LostSenSS, посмотри как используется бекграунд в объектной модели...
http://htmlbook.ru/css/background
Почти в самом низу...
[window.]document.getElementById("elementID").style.backgro und

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

так не работает даже в лисе с оперой :/
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2011, 17:10
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

во-первых, пиши так:
document.getElementById('header').style.background = 'url(...)';
во-вторых, учись отлаживать, пишешь в какой-нибудь строчке скрипта слово debugger и браузер остановит выполнение в этом месте, если ты перед этим откроешь "Инструменты разработчика"
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2011, 17:25
Аватар для LostSenSS
Интересующийся
Отправить личное сообщение для LostSenSS Посмотреть профиль Найти все сообщения от LostSenSS
 
Регистрация: 19.01.2011
Сообщений: 14

Сообщение от x-yuri Посмотреть сообщение
во-первых, пиши так:
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
Ответить с цитированием
  #9 (permalink)  
Старый 19.01.2011, 18:20
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от LostSenSS
оно и понятно, вместо значения переменной в имя файла подставляется undefined
отлично
console.log(name, n);

и смотришь в консоль "Инструментов разработчика"
Ответить с цитированием
  #10 (permalink)  
Старый 19.01.2011, 18:21
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

>>>> if(n< 0) n= count; <<<<
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS работает в Опере, Хроме и Сафари, и не работает в IE & Mozilla Aliena Javascript под браузер 5 04.12.2010 08:15
Не работает в хроме и ослике. kirys0 AJAX и COMET 4 08.09.2010 22:45
Странная работа в Хроме и Сафари Flake jQuery 1 08.09.2010 10:28