Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.10.2008, 12:15
Интересующийся
Отправить личное сообщение для chainick Посмотреть профиль Найти все сообщения от chainick
 
Регистрация: 06.10.2008
Сообщений: 10

Глюки оперы или ошибки кода?
Всем здравствуйте!
Нашел HTML c JS, скопировал JS в отдельный файл clock.js,
немного упростил, вставил в страницу, но:
1. Работает в IE6,NN6,NN9,Opera8,Opera9
2. Opera 6.01 не догружает последнюю картинку
(document.images.length = 7 , а не 8???)
3. Opera 7.11 загружает картинки с точками,
но document.images.length = 0 ??? и дальше не дышит!
Opera 7.11 после первого обращения к св-ву document.images.length,
уже почему-то не изменяет размерность массива images,
хотя 8 картинок отображены на странице ???!!!
Помогите, plz, что не так? (или это глюки оперы?)
Мой код - http://magg48.site90.net/
Исходный HTML - http://magg48.site90.net/clock.html
(Исходный HTML в Opera6 пашет, в Opera7 нет)

<!--  
// создаю массив изображений
var digit = new Array()
digit[0] = new Image(16, 21) 
digit[1] = new Image(16, 21) 
digit[2] = new Image(16, 21) 
digit[3] = new Image(16, 21) 
digit[4] = new Image(16, 21)					
digit[5] = new Image(16, 21)
digit[6] = new Image(16, 21)
digit[7] = new Image(16, 21)
digit[8] = new Image(16, 21)
digit[9] = new Image(16, 21)
digit[10] = new Image(9, 21) // colon
digit[11] = new Image(9, 21) // dark colon
digit[12] = new Image(9, 21) // point

// инициализирую цифры 0-9		
for (var i = 0; i < 10; ++i) {
	digit[i].src = getPath(location.href) + "dg" + i + ".gif"
}

// инициализирую оставшиеся
digit[10].src = getPath(location.href) + "dgc.gif"
digit[11].src = getPath(location.href) + "dgc1.gif"
digit[12].src = getPath(location.href) + "dgp.gif"

// запоминаю, сколько картинок уже загружено на страницу
var pic = document.images.length

// занимаю место на сайте под часы картинками dgp.gif из массива
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgc.gif\" HEIGHT=21 WIDTH=9>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgc.gif\" HEIGHT=21 WIDTH=9>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")
document.write("<IMG SRC=\"" + getPath(location.href) + "dgp.gif\" HEIGHT=21 WIDTH=16>")

// прверяю, сколько теперь картинок загружено на страницу
alert("Загружено картинок : " + document.images.length)

setClock()

function setClock() {
	var now = new Date()
	var hour = now.getHours()
	var minute = now.getMinutes()
	var sec = now.getSeconds()

	if (hour < 10)  hour = "0" + hour
	else  hour += ""
	if (minute < 10)  minute = "0" + minute
	else  minute += ""
	if (sec < 10)  sec = "0" + sec
	else  sec += ""
//              замена картинок на соответствующие показаниям часов
		document.images[pic+0].src = digit[hour.charAt(0)].src
		document.images[pic+1].src = digit[hour.charAt(1)].src
		document.images[pic+2].src = digit[10].src
		document.images[pic+3].src = digit[minute.charAt(0)].src
		document.images[pic+4].src = digit[minute.charAt(1)].src
		document.images[pic+5].src = digit[10].src
		document.images[pic+6].src = digit[sec.charAt(0)].src
		document.images[pic+7].src = digit[sec.charAt(1)].src

        setTimeout("setClock()",1000)
}

function getPath(url) {
	lastSlash = url.lastIndexOf("/")
	return url.substring(0, lastSlash + 1)}
// -->

Последний раз редактировалось chainick, 06.10.2008 в 16:27.
Ответить с цитированием
  #2 (permalink)  
Старый 06.10.2008, 13:45
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

Сообщение от chainick
1. Работает в IE6,NN6,NN9,Opera8,Opera9
это главное, а на остальные верси оперы забей... в опере до 9 версии вообще глюков с яваскриптом писец скоко.. самая терпимая 9.51 и выше... а с кодом твоим всё впорядке..
Ответить с цитированием
  #3 (permalink)  
Старый 06.10.2008, 16:24
Интересующийся
Отправить личное сообщение для chainick Посмотреть профиль Найти все сообщения от chainick
 
Регистрация: 06.10.2008
Сообщений: 10

Спасибо за ответ. Но ко мне на сайт заходят даже с оперой6.
Придется проверять версию браузера и в оперу6,7 часы не вставлять...
Ответить с цитированием
  #4 (permalink)  
Старый 06.10.2008, 17:52
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

chainick,
Надо же. На ваш сайт заходят гости из далекого прошлого.
Ответить с цитированием
  #5 (permalink)  
Старый 06.10.2008, 18:18
Интересующийся
Отправить личное сообщение для chainick Посмотреть профиль Найти все сообщения от chainick
 
Регистрация: 06.10.2008
Сообщений: 10

Что-нибудь по сути вопроса могли бы сказать?
Ведь Вы же ПРОФЕССОР!
Есть много других сайтов, где можно поболтать ,sorry...
Ответить с цитированием
  #6 (permalink)  
Старый 06.10.2008, 22:28
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

chainick,
К сожалению, у меня нет установленных версий Opera 6 и 7.
Так что помочь советом я не могу. Могу потестировать на IE 4.

Последний раз редактировалось Андрей Параничев, 06.10.2008 в 22:33.
Ответить с цитированием
  #7 (permalink)  
Старый 06.10.2008, 22:29
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

у меня стоит стата по браузерам на сайте.. за полтора года 6 и 7 оперу невидил ни разу.. 8 бывала, но редко... на столько редко, что я даже под неё не адаптировал дизайн
Ответить с цитированием
  #8 (permalink)  
Старый 06.10.2008, 23:06
Интересующийся
Отправить личное сообщение для chainick Посмотреть профиль Найти все сообщения от chainick
 
Регистрация: 06.10.2008
Сообщений: 10

Спасибо за отклики. У меня вчера (смотрел в логах) кто-то влезал с 6-ой оперой
Я подкорректировал JS, и заработали и опера6, и опера7. Пришлось для 6 пилить JS на 2 части, а для 7 переносить document.images.length в другое место. Если кто-то протестит в разных браузерах (кому не влом), буду премного благодарен. http://magg48.site90.net/
Перед тем, как вставлять в рабочий сайт, хотелось бы знать, что не глючит. Время буду брать с сервера через PERL.
Если кого-то, вдруг, заинтересует код, выложу...

Последний раз редактировалось chainick, 06.10.2008 в 23:09.
Ответить с цитированием
  #9 (permalink)  
Старый 06.10.2008, 23:20
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Когда уж все наиграются с этими часами, раскрашиванием скроллбаров, изменением строки статуса, мигающими тайтлами и прочим :-) Вы потратили уйму времени на абсолютно бесполезную вещь. Часы у всех и так есть, зачем они еще и на сайте, да еще и для браузеров прошлого века?
Ответить с цитированием
  #10 (permalink)  
Старый 07.10.2008, 14:11
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

а вдруг часы являются частью дизайна?
ну предположем это сайт по продаже часов...
так что резон есть
Ответить с цитированием
Ответ



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

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