Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ie 8 не видит скрипт
 
 автор: pautina   (23.08.2010 в 16:24)   письмо автору
 
 

Здравствуйте Уважаемое сообщество, ни подскажете почему браузер ie8 не видит или не может выполнить скрипт (скрпипт приравнивает высоту контента к левому и правому сайдбару)

<script type="text/javascript">  
    onload = function ()  
       {  
        var iH = document.getElementById('content').offsetHeight;               
        document.getElementById('sideLeft').style.height = iH + 'px';  
        document.getElementById('sideRight').style.height = iH + 'px';     
       }       
 </script>
 

Ни знаю почему уже долго пытался понять в чём дело (думал или высота ячейки или ie 8 не может сделать высоту на 100%) Несколько тем даже у Вас создал (прошу извинить) чтоб ответ найти.
Оказалось ie8 (в отличии от ie6,7 ) не выполняет или не видит этот скрипт,
Почему так не скажете?

  Ответить  
 
 автор: Lelik   (23.08.2010 в 17:57)   письмо автору
 
   для: pautina   (23.08.2010 в 16:24)
 

для блока с ид content задай свойство цсс zoom: 1

  Ответить  
 
 автор: pautina   (23.08.2010 в 19:09)   письмо автору
 
   для: Lelik   (23.08.2010 в 17:57)
 

Прописал zoom:1; для content не помогло,
Что еще можно попробовать, скрипт для ie8 не выполняется.

  Ответить  
 
 автор: bishake   (24.08.2010 в 00:24)   письмо автору
 
   для: pautina   (23.08.2010 в 19:09)
 

Что именно не выполняется? Добавьте алерты, потестите

  Ответить  
 
 автор: pautina   (24.08.2010 в 08:38)   письмо автору
 
   для: bishake   (24.08.2010 в 00:24)
 

Как добавить аплет, что сделать?
Вот адрес сайта http://my-page51.narod.ru/
Это скрипт

<script type="text/javascript">  
    onload = function ()  
       {  
        var iH = document.getElementById('content').offsetHeight;               
        document.getElementById('sideLeft').style.height = iH + 'px';  
        document.getElementById('sideRight').style.height = iH + 'px';     
       }       
 </script> 

  Ответить  
 
 автор: elenaki   (24.08.2010 в 09:55)   письмо автору
 
   для: pautina   (24.08.2010 в 08:38)
 

не аплет, а алерт (alert)
все переменные, которые вы вычисляете, можно вывести алертом на экран и посмотреть, чему они на самом деле равны.

  Ответить  
 
 автор: pautina   (24.08.2010 в 10:14)   письмо автору
 
   для: elenaki   (24.08.2010 в 09:55)
 

Извиняюсь, алерт пробовал для ie 7,8, высота области content 766пкс,
Но для ie 8 этот скрипт не выполняется почему?

  Ответить  
 
 автор: АЯ   (24.08.2010 в 10:54)   письмо автору
 
   для: pautina   (24.08.2010 в 08:38)
 

Запустите в любом из браузеров следующий код
<html>
<head>
<script>
onload = function () {alert ('Мама')}
onload = function () {alert ('мыла')}
onload = function () {alert ('раму')}
</script>
</head>
<body>
</body>
</html>
И попробуйте САМИ объяснить - почему Вы не увидите слов Мама мыла, а увидите только одно слово раму?

PS. Просьба прочим не вмешиваться. Провожу экспресс-сеанс принудительного обучения принципам программирования.

  Ответить  
 
 автор: pautina   (24.08.2010 в 14:11)   письмо автору
 
   для: АЯ   (24.08.2010 в 10:54)
 

Чтоб это работало нужно определить функцию

<html> 
<head> 
<script>
function myFunction1() { alert ('Мама') }
function myFunction2() { alert ('мыла') }
function myFunction3() { alert ('раму') }
</script>
 
</head> 
<body>
<script language="javascript">
    myFunction1()
    myFunction2()
    myFunction3()
</script> 
</body> 
</html>

Но вот почему наш скрипт расчитывающий высоту не работает в ie8 не могу понять, причём он выдаёт значение высоты и работает в ie7.
Пытаюсь вместе с Вами понять.

  Ответить  
 
 автор: АЯ   (24.08.2010 в 14:58)   письмо автору
 
   для: pautina   (24.08.2010 в 14:11)
 

Нет, определение функций тут совсем "не при делах".
Вы не поняли задачи.
Необходимо, чтобы ПОСЛЕ ОКОНЧАНИЯ ЗАГРУЗКИ ОКНА (именно ПОСЛЕ) браузер выдал три алерта подряд. Как и написано в моём коде.
А он выдаёт всего ОДИН.

Вы же путём определения функций задачу ИЗМЕНИЛИ - алерты у Вас появляются СРАЗУ, ещё ДО окончания загрузки окна (именно ДО).

-----
Поясняю, чтобы Вас не мучить.
Если Вы скажете человеку три фразы:
1. Проснёшься - выгуляй собаку.
2. Проснёшься - умойся.
3. Проснёшься - оденься потеплее.
, то Вы можете быть уверены, что человек, если он не идиот, проснувшись, СНАЧАЛА умоется, ЗАТЕМ оденется и уже ПОТОМ пойдёт гулять с собакой.
Потому как всякий разумный человек ОБЛАДАЕТ собственной логикой и понимает, что СНАЧАЛА надо умыться и одеться, а уж ЗАТЕМ идти на улицу с собакой.

У компьютера НЕТ собственной логики - он делает только то, что ему прикажут.
Я в своём коде компьютеру приказал:
1. onload = function () {alert ('Мама')}  Загрузишь окно - выдай алерт 'мама'
, компьютер, прочитав это, приготовился после окончания загрузки выдать алерт со словом 'мама'.
Но затем компьютер читает СЛЕДУЮЩЕЕ задание:
2. onload = function () {alert ('мыла')} Загрузишь окно - выдай алерт 'мыла'
Раньше приказывали - 'мама', теперь приказали - 'мыла'.
Что делать?
Правильно, как в армии - последний приказ отменяет предыдущие. Потому компьютер про 'маму' забывает и готовится выдать 'мыла'.
Но тут он читает следующее:
3. onload = function () {alert ('раму')}  Загрузишь окно - выдай алерт 'раму'
Компьютер с чистой совестью забывает про 'мыла' (про 'маму' он уже давно забыл) и готовится выдать только 'раму'. Что с успехом и делает, когда происходит событие загрузки окна.

Понятно?
Чтобы компьютер выдал ВСЕ ТРИ алерта, необходимо ему так и написать: Когда загрузишься, то выдай сначала 'маму', затем 'мыла' и в конце - 'раму'. И код для этого будет выглядеть ТАК:
<html>
<head>
<script>
onload = function () {alert ('Мама'); alert ('мыла'); alert ('раму')}
</script>
</head>
<body>
</body>
</html>
Проверьте - и Вы увидите ВСЕ ТРИ алерта.

Ферштейн?
------

В вашем конкретном случае указанный скрипт НЕ РАБОТАЕТ ни в одном из браузеров - ни в ie6, ни в ie7, ни в ie8. Вообще НИГДЕ. То, что якобы где-то работает - это Вам показалось.
Потому как в подключаемых Вами внешних скриптах есть СВОИ функции на одно и то же событие onload. И эти функции, написанные ПОЗЖЕ, чем указанный Вами скрипт, ОТМЕНЯЮТ действие первого.

Можете это проверить САМИ: сделайте одно единственное изменение в коде и посмотрите страницу в ЛЮБОМ из браузеров - и Вы НИГДЕ не увидите алерт со словом 'Работаю!'. Изменение следующее - вставьте этот самый алерт вот сюда:
<script type="text/javascript">  
    onload = function ()  
       {  alert ('Работаю!');
        var iH = document.getElementById('content').offsetHeight;               
        document.getElementById('sideLeft').style.height = iH + 'px';  
        document.getElementById('sideRight').style.height = iH + 'px';     
       }       
 </script>


Прочитайте ВНИМАТЕЛЬНО, обязательно проверьте.
Когда ВЪЕДЕТЕ в написанное - сообщите об этом ЗДЕСЬ.
Тогда и подумаем - как Вам помочь :-)

  Ответить  
 
 автор: bishake   (24.08.2010 в 15:28)   письмо автору
 
   для: АЯ   (24.08.2010 в 14:58)
 

Слышь, экспресс-сеансер, ты чего так разошёлся-то? С чего Ты вообще взял, что у человека onload объявлен где-то ещё?

  Ответить  
 
 автор: АЯ   (24.08.2010 в 15:32)   письмо автору
 
   для: bishake   (24.08.2010 в 15:28)
 

Рот закрой, хамло трамвайное.
"Тыкать" будешь в своём колхозе таким же парашникам, как и сам.

Человек ссылку дал на свою страницу.

  Ответить  
 
 автор: elenaki   (24.08.2010 в 21:05)   письмо автору
 
   для: АЯ   (24.08.2010 в 14:58)
 

а вот у нас в туалете (женском) висит НАД унитазом такое объявление (на греческом,
разумеется): "После пользования туалетом, спускайте воду и не бросайте бумагу в
унитаз". объява висит на стене НАД унитазом, т.е. СЗАДИ (туалет-то женский!), стало
быть прочитать ее можно как раз ПОСЛЕ пользования, потому что ДО кто же будет во
всякие объявы вчитываться... итак, читаю "после пользования ...". сверяю я после, да,
после. читаю дальше - "спустите...", спускаю. читаю дальше - "и не бросайте..." какое там
"не бросайте..."? "не бросайте" должно было идти сразу после "пользования", а не после
"спустите...". теперь уже поздно. или объяву надо было вешать на стене ПЕРЕД горшком,
чтоб было время ее прочитать и осмыслить... да, думаю, методы линейного програм-
мирования так просто не забываются. нет, чтоб сначала все прочитать, "скомпилировать",
потом выдать результат, т.е. действие. так нет, исполняем по мере поступления команд.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования