Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/64: Рейтинг темы: голосов - 64, средняя оценка - 4.80
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446

Исполнение функций JS в html документе

07.02.2019, 16:45. Показов 13313. Ответов 16

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Помогите пожалуйста корректно решить следующею задачу:
  1. Создайте простой HTML-документ.
  2. Добавьте два абзаца с произвольным текстом.
  3. Организуйте между двумя абзацами вывод приветственного
    сообщения в диалоговом окне, задав необходимые команды внутри
    тэга <script>.
  4. Добавьте команду вывода аналогичного приветственного сообщения
    в окно браузера после закрытия диалогового окна.
Вот как я пытаюсь это сделать, но не получается:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<DOCTYPE HTML>
<HTML>
    <HEAD>
        <TITLE>Главная¤ страница</TITLE>
        
        <script language="JavaScript">
        function message_ (){
        alert("Welcome on my page");
        }
        </script>
        
        <script language="JavaScript">
        function message_2 (){
        writeln("Welcome on my page");
        }
        </script>   
    </HEAD>
    
    <BODY onUnload="JavaScript: message_ ()">
    <p align=center> Абзац 1-ый </p>
    <script language="JavaScript">
    message_2 ();
    </script>   
    <p align=center> Абзац 2-oй </p>  
    </BODY>
    
</HTML>
Скажите, почему не работают функции?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2019, 16:45
Ответы с готовыми решениями:

Как вывести html в документе
Приветствую, Суть такая, мой DLE генерирует код, вот он: &lt;div id=&quot;something&quot;&gt;Строка текста.&lt;br /&gt;Еще строка...

Фантомный код появился в HTML документе
Всем доброго времени суток! Я не совсем уверен что я пишу по теме, но попробую, если что то перенаправьте. Проблема такая: в колледже...

Как совмещать XML с HTML в одном документе?
Вообще, как использовать XML? Когда я пишу стандартный для новичка кусок хмл кода и созраняю его с расширением .xml, вид выводимы в...

16
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.02.2019, 16:53
Volodya_, весь скрипт поместите между параграфами. И writeln это метод объекта document - https://developer.mozilla.org/... nt/writeln
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html lang="ru">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <p>Параграф 1</p>
     <script>
        alert("Welcome on my page");
        document.writeln("Welcome on my page");
    </script>
    <p>Параграф 2</p>
</body>
</html>
1
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 17:04  [ТС]
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
весь скрипт поместите между параграфами.
Почему нельзя с помощью функций описанных в блоке <HEAD>?

У меня почему-то вместо текста ромбики с вопросами "��������"
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.02.2019, 17:15
Volodya_, файл в UTF-8 сохраните.
Цитата Сообщение от Volodya_ Посмотреть сообщение
Почему нельзя с помощью функций описанных в блоке <HEAD>?
Можете, почему нет?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
      function hello() {
        alert("Welcome on my page");
        document.writeln("Welcome on my page");
      }
    </script>
</head>
<body>
    <p>Параграф 1</p>
     <script>
        hello();
    </script>
    <p>Параграф 2</p>
</body>
</html>
Миниатюры
Исполнение функций JS в html документе  
1
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 17:28  [ТС]
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Можете, почему нет?
Вот пытаюсь вызвать функцию при закрытии страницы, чтобы сообщение в диалоговое окно выводилось при закрытии. Не срабатывает. Всё остальное начало работать

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE HTML>
<html lang="ru">
<HTML>
    <HEAD>
        <meta charset="UTF-8">
        <TITLE>Главная страница</TITLE>
        
        <script language="JavaScript">
        function message_ (){
        alert("Welcome on my page");
        }
        </script>
        
        <script language="JavaScript">
        function message_2 (){
        document.writeln("Welcome on my page");
        }
        </script>   
    </HEAD>
    
    <BODY onUnload="JavaScript:message_ ()">
    <p align=center> Абзац 1-ый </p>
    <script language="JavaScript">
    message_2 ();
    </script>   
    <p align=center> Абзац 2-oй </p>    
    </BODY>
    
</HTML>
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.02.2019, 17:58
Лучший ответ Сообщение было отмечено Volodya_ как решение

Решение

Volodya_, постарайтесь не назначать обработчик события таким варварским способом (в атрибуте).
Для этого у объектов есть метод addEventListener - https://developer.mozilla.org/... ntListener
Тем более Вы его неправильно написали - onunload и не тому элементу - https://developer.mozilla.org/... s/onunload.
А еще это плохая идея, многие браузеры блокируют всплывающие окна при этом событии не просто так.
Вам бы понравилось, если бы Вы зашли на страницу и Вам было бы не выйти с неё обычным путем, потому что какой-то .... недалекий человек, повесил обработчик unload на окно c последующим диалогом с юзверем?

Когда Вы прочитаете материал по ссылке, что я Вам предоставил, Вы поймете почему результат Вы не увидите.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
07.02.2019, 19:53
Лучший ответ Сообщение было отмечено Volodya_ как решение

Решение

Всем здравствуйте!
Цитата Сообщение от Volodya_ Посмотреть сообщение
1. Создайте простой HTML-документ.
2. Добавьте два абзаца с произвольным текстом.
3. Организуйте между двумя абзацами вывод приветственного
сообщения в диалоговом окне, задав необходимые команды внутри
тэга <script>.
4. Добавьте команду вывода аналогичного приветственного сообщения
в окно браузера после закрытия диалогового окна.
Стою на асфальте я в лыжи обутый...
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
        form {
            width: 200px;
            border: 1px solid red;
            padding: 5px;
            text-align: center;
        }
        form label {
            display: inline-block;
            margin-bottom: 5px;
        }
        form input {
            width: 100px;
        }
    </style>
</head>
<body>
    <p> Абзац 1-ый </p>
    <p> Абзац 2-oй </p>
    <script>
        document.getElementsByTagName("p")[0]
            .insertAdjacentHTML("afterend", "<form><label>Welcome on my page</label><input type='button' value='OK'></form>");
        var form = document.forms[0];
        form.lastElementChild.onclick = message_2;
 
        function message_2() {
            document.body.replaceChild(document.createTextNode("Welcome on my page"), form);
        }
    </script>
</body>
</html>
1
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 21:09  [ТС]
Цитата Сообщение от amr-now Посмотреть сообщение
Стою на асфальте я в лыжи обутый...
Сложновато для 1-ой лабы по JS )

Добавлено через 4 минуты
Цитата Сообщение от amr-now Посмотреть сообщение
Стою на асфальте я в лыжи обутый...
Почему не работает, если прописать вот так?
JavaScript
1
document.forms[0].lastElementChild.onclick = message_2;
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
07.02.2019, 21:09
Volodya_, ладно. Зайдем с другой стороны.
Организуйте между двумя абзацами вывод приветственного
сообщения в диалоговом окне
Как себе преподаватель представляет вывести между двумя абзацами диалоговое окно?

alert, скотина, выскакивает отдельно, а не между ними )))))))
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 21:12  [ТС]
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Для этого у объектов есть метод addEventListener
В данном случае у объекта document?

Добавлено через 2 минуты
Цитата Сообщение от amr-now Посмотреть сообщение
Как себе преподаватель представляет вывести между двумя абзацами диалоговое окно?
Да с этим уже ладно, главное что они выводятся. Между абзацами вывожу строку, а не окно ))
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
07.02.2019, 21:48
Volodya_, допустим:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <p> Абзац 1-ый </p>
    <script>
            window.addEventListener("load", message_);
    
            function message_() {
                alert("Welcome on my page");
                message_2();
            }
            function message_2() {
                document.body.appendChild(document.createTextNode("Welcome on my page"));
            }
        </script>
    <p> Абзац 2-oй </p>
</body>
</html>
В Опере диалоговое окно выводится ДО появления страницы, кода двух абзацев нет
В MS Edge два абзаца видны, но диалоговое окно расположено не между абзацами.

Или между абзацами только <script> ? А на время вывода и расположение диалогового окна наплевать? Тогда решено.
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 21:53  [ТС]
Цитата Сообщение от amr-now Посмотреть сообщение
В Опере диалоговое окно выводится ДО появления страницы, кода двух абзацев нет
У меня в Ghrome - да
Цитата Сообщение от amr-now Посмотреть сообщение
А на время вывода и расположение диалогового окна наплевать?
Уже наплевать.

Вот только теперь между абзацами сообщение уже не выводится теперь
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
07.02.2019, 21:55
Volodya_, а в задаче не написано, что новое сообщение должно вставиться между абзацами. Внимательно перечитайте.
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
07.02.2019, 21:58  [ТС]
Цитата Сообщение от amr-now Посмотреть сообщение
а в задаче не написано, что новое сообщение должно вставиться между абзацами. Внимательно перечитайте.
в общем я остановился на самом 1-ом вашем варианте, только чуть его скорректировал

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8" />
    <script language="JavaScript">
        function message_2 (){
        alert("Welcome on my page");
        }
        </script>
</head>
<body>
    <p> Абзац 1-ый </p>
    <p> Абзац 2-oй </p>
    <script>
        document.getElementsByTagName("p")[0]
            .insertAdjacentHTML("afterend", "<form><label>Welcome on my page</label><input type='button' value='OK'></form>");
       var form = document.forms[0];
       form.addEventListener("click", message_2);
     </script>
</body>
</html>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
08.02.2019, 02:59
Volodya_, вообще-то alert () -- это как бы не совсем "диалоговое" окно: это как между генералом и ефрейтором, на любое утверждение первого ефрейтор может ответить только лишь "так точно, товарищ генерал!"

диалоговым является окно confirm (), браузер в нём чего-то юзера спрашивает, и тот может выбрать один из двух ответов
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
08.02.2019, 07:52
kalabuni, определение диалогового окна идет ещё с древнейших языков программирования
(даже выводящих на экран псевдографику 80-х годов).
alert() вполне подходит под категорию простейшего диалогового окна, типа MessageBox с одной кнопкой.
Именно с этим всё в порядке.
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
08.02.2019, 13:55
amr-now, точно, спасибо

ещё одно соображение: "окно между абзацами" - мейби , имелось в виду, что первый абзац прописан чистым HTML-кодом
по загрузке окна с этим первым абзацем всплывает alert (), по нажатию на "ОК" которого второй абзац прописывается скриптом (с помощью document.write ())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2019, 13:55
Помогаю со студенческими работами здесь

Сохранить изменения в HTML документе.(Подробнее в описании)
Приветствую. Хожу вокруг да около, не могу понять одну вещь. Есть кусок кода, добавляющий html-элемент в код, допустим: ...

Независимое исполнение функций
Доброго времени суток, у меня есть консольная программа, &quot;@&quot; - которая бегает и стреляет. Но пока движется пуля я не могу её перемещать,...

Исполнение функций удаленно
можно ли сделать так - на 10 серверах лежит скрипт , в нем приемник и исполнитель а главный сервер посылает им определенный сценарий для...

Реализовать функцию проверки правильности html-тэгов в html-документе
нужно реализовать функцию на с++.Долго сидел,понять не могу.

Отключить исполнение скриптов (html)
Отключить исполнение скриптов (html) Такая проблема. Мне необходимо запретить браузеру пользователя исполнять скрипты на странице (в...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru