|
|
|
| Здравствуйте Уважаемое сообщество, ни подскажете почему браузер 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 ) не выполняет или не видит этот скрипт,
Почему так не скажете? | |
|
|
|
|
|
|
|
для: pautina
(23.08.2010 в 16:24)
| | для блока с ид content задай свойство цсс zoom: 1 | |
|
|
|
|
|
|
|
для: Lelik
(23.08.2010 в 17:57)
| | Прописал zoom:1; для content не помогло,
Что еще можно попробовать, скрипт для ie8 не выполняется. | |
|
|
|
|
|
|
|
для: pautina
(23.08.2010 в 19:09)
| | Что именно не выполняется? Добавьте алерты, потестите | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: pautina
(24.08.2010 в 08:38)
| | не аплет, а алерт (alert)
все переменные, которые вы вычисляете, можно вывести алертом на экран и посмотреть, чему они на самом деле равны. | |
|
|
|
|
|
|
|
для: elenaki
(24.08.2010 в 09:55)
| | Извиняюсь, алерт пробовал для ie 7,8, высота области content 766пкс,
Но для ie 8 этот скрипт не выполняется почему? | |
|
|
|
|
|
|
|
для: pautina
(24.08.2010 в 08:38)
| | Запустите в любом из браузеров следующий код
<html>
<head>
<script>
onload = function () {alert ('Мама')}
onload = function () {alert ('мыла')}
onload = function () {alert ('раму')}
</script>
</head>
<body>
</body>
</html>
| И попробуйте САМИ объяснить - почему Вы не увидите слов Мама мыла, а увидите только одно слово раму?
PS. Просьба прочим не вмешиваться. Провожу экспресс-сеанс принудительного обучения принципам программирования. | |
|
|
|
|
|
|
|
для: АЯ
(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.
Пытаюсь вместе с Вами понять. | |
|
|
|
|
|
|
|
для: 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>
|
Прочитайте ВНИМАТЕЛЬНО, обязательно проверьте.
Когда ВЪЕДЕТЕ в написанное - сообщите об этом ЗДЕСЬ.
Тогда и подумаем - как Вам помочь :-) | |
|
|
|
|
|
|
|
для: АЯ
(24.08.2010 в 14:58)
| | Слышь, экспресс-сеансер, ты чего так разошёлся-то? С чего Ты вообще взял, что у человека onload объявлен где-то ещё? | |
|
|
|
|
|
|
|
для: bishake
(24.08.2010 в 15:28)
| | Рот закрой, хамло трамвайное.
"Тыкать" будешь в своём колхозе таким же парашникам, как и сам.
Человек ссылку дал на свою страницу. | |
|
|
|
|
|
|
|
для: АЯ
(24.08.2010 в 14:58)
| | а вот у нас в туалете (женском) висит НАД унитазом такое объявление (на греческом,
разумеется): "После пользования туалетом, спускайте воду и не бросайте бумагу в
унитаз". объява висит на стене НАД унитазом, т.е. СЗАДИ (туалет-то женский!), стало
быть прочитать ее можно как раз ПОСЛЕ пользования, потому что ДО кто же будет во
всякие объявы вчитываться... итак, читаю "после пользования ...". сверяю я после, да,
после. читаю дальше - "спустите...", спускаю. читаю дальше - "и не бросайте..." какое там
"не бросайте..."? "не бросайте" должно было идти сразу после "пользования", а не после
"спустите...". теперь уже поздно. или объяву надо было вешать на стене ПЕРЕД горшком,
чтоб было время ее прочитать и осмыслить... да, думаю, методы линейного програм-
мирования так просто не забываются. нет, чтоб сначала все прочитать, "скомпилировать",
потом выдать результат, т.е. действие. так нет, исполняем по мере поступления команд. | |
|
|
|