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

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

20.04.2012, 04:01. Показов 1867. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru