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

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

20.04.2012, 04:01. Показов 1857. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru