Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 35

Мой первый скипт

20.04.2012, 04:01. Показов 1917. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прочитал недавно самоучитель небольшой, решил сделать скриптик
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<head>
<title>Семья Антипиных- главная страница</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script language="javacript">
function lala()
{
var d=new Date();
var year=d.getFullYear();
var date=d.getDate();
var month=d.getMonth()+1;
var hours=d.getHours();
var minutes=d.getMinutes();
if (hours == 9);
{document.write("<p>Илья- дома, скорее всего играет в компьтер</p>")};
document.write(hours);
}
</script>
</head>
<body onLoad="lala()">
</body>
</html>
Но ничего не пишет (тестировал в 9 часов). В чём мои ошибки?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2012, 04:01
Ответы с готовыми решениями:

Мой первый jQuery
Вчера весь день убил на написание первого скрипта. Сам больше дизайнер, но тут прям затянуло :) Что нужно: сделать на странице...

Мой первый шаг
«Строки» Дана фраза, в которой слова разделены одним пробелом, а сама фраза заканчивается точкой. Требуется: Определить, сколько в...

мой первый сайт
Добрый день. написал свой первый сайт.Хотелось бы услышать критику опытных людей.

7
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
20.04.2012, 04:16
Цитата Сообщение от anassin Посмотреть сообщение
HTML5
1
<script language="javacript">
кое-где здесь
0
16 / 16 / 7
Регистрация: 30.04.2011
Сообщений: 41
20.04.2012, 04:32
немного отредактировал, пробуйте

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<title>Семья Антипиных- главная страница</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script type="text/javascript">
    function lala(number){
        var d = new Date();
        var hours = d.getHours();
        if (hours == number){
            document.write("<p>Илья- дома, скорее всего играет в компьтер</p>");
        }
        document.write(hours);
    }
    document.getElementById('content').innerHTML = lala(9);
</script>
</head>
<body>
<div id="content"></div>
</body>
</html>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
20.04.2012, 06:25
Лучший ответ Сообщение было отмечено как решение

Решение

Попробовали

Запомните на всю оставшуюся жизнь две вещи:

ПЕРВОЕ
Браузер об элементах страницы узнаёт постепенно, шаг за шагом, вслед за прописанными в HTML-коде тегами и скриптами, начиная с самой первой строки.
Прочитал браузер первую вашу строку - <html> - и узнал только то, что открывается документ, написанный на языке HTML. Что там в этом документе имеется - браузеру пока неведомо. Есть ли там скрипты и стили, он пока не знает. Какие именно теги будут на вашей странице - он не знает.
Обо всём этом браузер будет узнавать последовательно, строка за строкой.
Понятно?

ВТОРОЕ
Метод document.write () - он работает при разных обстоятельствах по-разному.
Когда страница только загружается в браузер и формируется, этот метод ДОписывает на страницу то, что написано в его круглых скобках, в дополнение к тому, что уже есть на странице, и к тому, что ещё на ней будет.
А вот когда страница уже вся полностью загружена и сформирована, то метод document.write () эту страницу полностью ПЕРЕписывает, оставляя на на странице только то, что у этого метода в круглых скобках. Всё уничтожается, в том числе и сам скрипт, в котором этот метод document.write () прописан.

Ещё раз: постарайтесь уловить разницу между ДОписывать и ПЕРЕписывать.
В процессе формирования страницы ДОписывается, после загрузки страницы - ПЕРЕписывается вся страница.

Отсюда вывод: использование метода document.write () в каких-либо скриптах/функциях, которые вызываются на текущей сформированной странице - это первый признак того, что скрипт писал полный ньюб ("новичок" по-нашему).
-----

Запомнили?
Теперь разбираем ваш первый скрипт.

Читает браузер заголовок (всё что внутри <head>...</head>) вашего документа.
Видит там скриптовой блок <script>...</script>.
А в этом блоке видит функцию lala ().
Пока всё хорошо.

Но вот по завершению текста функции браузер видит ваш приказ - document.getElementById('content').inner HTML = lala(9);, который на русский язык переводится так: прописать внутрь тега с id="content" строку символов, которую должна создать функция lala (), которой в качестве аргумента надо заслать цифру 9.

И что делает браузер?
Правильно, он запускает функцию lala (9), исполняет её, а потом... потом он впадает в ступор.
Потому что он должен присвоить какую-то программную строку символов, сгенерированную этой функцией, а функция lala () никакой строки символов не производит. Функция lala (9) чего-то там напечатала где-то в документе, но ничего программного не сгенерировала.
Браузер из ступора выходит и решает эту ожидаемую им строку символов заменить своей собственной строкой - словом undefined, что означает "не определена".
И собирается прописать эту строку внутрь тега с id="content".
И во второй раз впадает в ступор, потому что браузер на данном этапе НИЧЕГО ЕЩЁ НЕ ЗНАЕТ про тег, у которого есть id="content".
Тут уже браузер ничего поделать не может, поэтому он генерит сообщение об ошибке, которую помещает в "Консоль ошибок", а именно "object document.getElementById ('content') not found", что переводится как "объект не найден".
-----

Как исправить ДВЕ ваши ошибки?
1. Функция lala () должна не печатать что-то и непонятно где на документе, а должна вернуть нужное значение в виде строки символов. Для этого есть оператор return, который так и переводится - "возвращать". А именно:
JavaScript
1
2
3
4
5
6
...
if (hours == number){
            var txt = "<p>Илья- дома, скорее всего играет в компьтер</p>";
        }
        return (txt + hours);
    }
2. Вызывать функцию надо ПОСЛЕ того, как браузер узнал про существование тега с id="content". Вариантов для этого есть несколько.
Например, можно разместить ещё один скриптовой блок <script>...</script> в любом месте ПОСЛЕ закрывающего тега </div> этого самого тега с id="content", и уже в этом блоке отдавать ваш приказ.
Либо можно оформить ваш приказ в существующем скриптовом блоке в виде функции, которая будет запускаться только тогда, когда ВСЯ страница загрузится в браузер и абсолютно ВСЕ теги страницы станут браузеру доступны. Это делается так:
JavaScript
1
window.onload = function () {document.getElementById('content').innerHTML = lala(9);}
Всё понятно, коллега?
7
16 / 16 / 7
Регистрация: 30.04.2011
Сообщений: 41
20.04.2012, 17:23
спасибо коллега за подробный ответ. оставляю свой очень плохой код чтобы больше так никто не делал . да я плохо знаю javascript, но все мы учимся
0
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 35
23.04.2012, 05:08  [ТС]
Извините, долго не мог ответить. Спасибо, всё разжевали В общем вот такой получился
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function lala()
{
var d=new Date();
var year=d.getFullYear();
var date=d.getDate();
var month=d.getMonth()+1;
var hours=d.getHours();
var minutes=d.getMinutes();
if (hours == 8)
{return ("<font style='color:black;font-size: 16;font-family: tahoma;font-style: normal;font-weight:normal;'><ul><li>Илья- в школе английского языка</li><li>Лиля- отвозит Тёму в садик</li><li>Андрей- спит</li><li>Кошка Ксюша-спит</ul></font>")};
if (hours == 9)
{return ("<font style='color:black;font-size: 16;font-family: tahoma;font-style: normal;font-weight:normal;'><ul><li>Илья- дома, играет в компьютер</li><li>Лиля- дома, смотрит телевизор и пьёт кофе</li><li>Андрей- на работе, учит детей играть в шахматы</li><li>Артём- в садике</li><li>Кошка Ксюша- спит</li></ul></font>")};
if (hours == 2)
{return ("<font style='color:black;font-size: 16;font-family: tahoma;font-style: normal;font-weight:normal;'><ul><li>Илья- в школе</li><li>Лиля- дома, </li><li>Андрей- на работе, учит детей играть в шахматы</li><li>Артём- в садике</li><li>Кошка Ксюша- спит</li></ul></font>")};
 
}
window.onload = function () {document.getElementById('content').innerHTML = lala();
}
Основа есть, буду забивать информацией. Ещё раз всем спасибо
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
23.04.2012, 06:36
JavaScript
1
2
if (hours == 2)
{return ("<font style='color:black;font-size: 16;font-family: tahoma;font-style: normal;font-weight:normal;'><ul><li>Илья- в школе</li><li>Лиля- дома, </li><li>Андрей- на работе, учит детей играть в шахматы</li><li>Артём- в садике</li><li>Кошка Ксюша- спит</li></ul></font>")};
Это в каком-таком уголке нашей Родины в два часа ночи дети учатся играть в шахматы?
Пошто детей своих - Артёма и Илью - в интернаты круглосуточные отправили?
Лиля у вас работает ночным сторожем при спящей кошке?


Если серьёзно, то используйте ещё и getDay () - вряд ли у вас дети по воскресеньям ходят в школу и садик...
0
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 35
23.04.2012, 12:33  [ТС]
Ну, у нас, во Владивостоке всё рано начинается А разве там время в 24-часовом режиме? У американцев, вроде бы как и у англичан, AM PM. А так это заготовка просто, сделаем ещё.
З.Ы. Насчёт кошки- она всё время спит, а если не спит, то жрёт, а если не жрёт то где-то в туалете
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2012, 12:33
Помогаю со студенческими работами здесь

Мой первый видеофильм
Здравствуйте, хочу снова посмотреть видеофильм, который я первый раз в жизни видел в видеосалоне. Название его было &quot;Побег&quot;,...

Мой первый инструмент
Вот пока что не большой список моего инструмента) С каждой зарплаты, запасы пополняются. Начал с нуля неделю назад. Инструмент: 1....

Мой первый тетрис
Пишу тетрис ). Подскажите есть ли способ попроще? Например как-то без массива... (мигает). Вот что получается: #include...

Мой первый сайт
Доброе время суток аксакалам веб-паутины :) Пришло время когда мне понадобилось выходить на веб-просторы. И сразу под вывеской...

мой первый сайт
здравствуйте решил побаловаться и написать сайт вот что пока есть &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 05.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 03.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru