Javascript.RU

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

!doctype влияет на работу яваскрипт?!
В заголовке скорее не вопрос, а восклицание...

Проблема вот в чем. Делал сайт, не обратил внимание что !doctype стоит неправильный, без ссылки на спецификацию. К тому времени, как пришла пора выкладывать сайт в сеть увидел, что в типе документа нет ссылки на спецификацию.

Меняю
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


на вот это
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">


всё, ничего не работает...

Разница только в типе документа, даже не столько в разнице, сколько отсутствием у первого оного. IE говорит, мол "недопустимый аргумент" вот в этой строке:

TruckDiv.style.left = StartX;


вот эти два файла:

Мужики, прошу помощи! Почему не работает?
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2008, 03:21
Sha Sha вне форума
Новичок на форуме
Отправить личное сообщение для Sha Посмотреть профиль Найти все сообщения от Sha
 
Регистрация: 21.09.2008
Сообщений: 7

И еще вопрос: Почему нельзя получить значение свойства, если оно задано не через style="...", а во внешнем css файле?
У меня почему-то не получалось...может я что-то не так делаю...
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2008, 14:20
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Sha,
Попробуйте
TruckDiv.style.left = StartX + "px";

Если я не ошибаюсь, для strict это принципиально.

Сообщение от Sha
Почему нельзя получить значение свойства, если оно задано не через style="...", а во внешнем css файле?
Потому что в element.style находятся либо стили заданные явно в аттрибуте, либо установленные через JavaScript ранее (в этот же объект style). Для получения "настоящего" стиля элемента нужно использовать другие конструкции. Почитайте про currentStyle и getComputedStyle.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2008, 21:37
Sha Sha вне форума
Новичок на форуме
Отправить личное сообщение для Sha Посмотреть профиль Найти все сообщения от Sha
 
Регистрация: 21.09.2008
Сообщений: 7

Спасибо, Андрюх, большое!

Экспериментально выяснил, что в IE наличие единиц не принципиально, а в FF принципиально.

Потом, оказалось, что ошибка вылезала из-за того, что я не правильно брал размеры браузера:

var MainWidth = document.body.clientWidth;         // Ширина экрана


В строгом режиме они почему-то не считывались... и после вычислений, естественно, выдавалось NuN Нашел в сети скриптик
if (self.innerHeight) {	
				MainWidth = self.innerWidth;	
				MainHeight = self.innerHeight;	
			} else if (document.documentElement && document.documentElement.clientHeight) {	
				MainWidth = document.documentElement.clientWidth;	
				MainHeight = document.documentElement.clientHeight;	
			} else if (document.body) {	
				MainWidth = document.body.clientWidth;	
				MainHeight = document.body.clientHeight;	
			}


вот после этого заработало всё как надо в строгом режиме)

Новая страница
Старая страница

Вот и валидный код

Последний раз редактировалось Sha, 21.09.2008 в 21:48. Причина: Добавить ссылки на новый и старый файл
Ответить с цитированием
Ответ



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

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