Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 15.03.2018
Сообщений: 79

Вывод разных данных в Alert по нажатию кнопки

11.01.2020, 22:42. Показов 7842. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем решил попробовать играть в одной азартной игре по своей системе

Составил текстовый документ с цифрами(каждая с новой строки), но лазить после каждой ставки в блокнот неудобно

Возможно ли сделать так, чтобы после каждого нажатия определенной кнопки на странице в алерт выводилось следующее число из документа? Ну или как-то загрузить список в массив и выводить уже оттуда

Скрипт для Tampermonkey

Добавлено через 34 минуты
Нашёл вот такой пример, но он выводит по таймеру
JavaScript
1
2
3
4
5
6
7
8
9
10
(function() {
        var arr = [ 'Первая строка', 'Вторая строка', 'Третья строка' ],
            i = -1;
        return function() {
            if ( ++i < arr.length ) {
                alert(arr[i]);
                setTimeout( arguments.callee, 2000 );
            }
        }();
})();
Вставить туда onclick пока не получается

Добавлено через 19 минут
JavaScript
1
2
3
4
5
6
7
8
9
(function() {
    var arr = [ 'Первая строка', 'Вторая строка', 'Третья строка' ];
    var i = 0;
    var button = document.getElementsByClassName('BetButtonContainer')[0];
    button.onclick = function() {
            alert(arr[i]);
            i = ++i;
    }
})();
Всё, с выводом разобрался, но загружать весь список каждый раз через изменение скрипта вообще неудобно. Есть ли возможность загрузки всё-таки или нет?

Добавлено через 11 минут
Немного поправил скрипт, сделал поиск кнопок не по классу, а по айди
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(function() {
    var arr = [ 'Первая строка', 'Вторая строка', 'Третья строка' ];
    var i = 0;
    var button1 = document.getElementById('BetLowButton');
    var button2 = document.getElementById('BetHighButton');
    button1.onclick = function() {
            alert(arr[i]);
            i = ++i;
    }
    button2.onclick = function() {
            alert(arr[i]);
            i = ++i;
    }
})();
Но вопрос с загрузкой массива остаётся открыт
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2020, 22:42
Ответы с готовыми решениями:

Вывод данных с формы по нажатию кнопки submit
Добрый день только начал знакомиться с MVC создал модель с 4-мя полями в представлении вводятся данные, типа небольшой формы 4...

Как сделать вывод данных из файла в словарь по нажатию кнопки?
нужно вывести имя игрока и его результат из файла форматом .txt d словарь(где на первом месте key,а на втором value) на первом месте...

Вывод данных из PHP в JS alert()
Приветствую, ломаю голову, как сделать вывод данных их php в js alert. Ситуация такая: Заполняю веб форму, делаю ее переброс в php скрипт,...

4
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
11.01.2020, 23:40
Кликните здесь для просмотра всего текста
.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16




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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css"></style>
</head>
<body>
    <input type="file" name="datas" id="reader"><br>
    <button id="readFileBtn">Прочитать файл</button>
 
    <script type="text/javascript">
        "use strict";
 
        document.getElementById("readFileBtn").addEventListener("click", async (e) => {
            let text = null;
            try { text = await readFile( document.getElementById("reader") );} 
            catch (e) { throw e; }
 
            let arr = text.split("\n");
            let iterator = makeIterator(arr);
            let nextElemBtn = document.createElement("button");
            nextElemBtn.textContent = "NEXT ELEMENT";
            nextElemBtn.addEventListener("click", () => alert(iterator.next().value));
            e.target.after(nextElemBtn);
        });
 
        function readFile(input) {
            return new Promise((resolve, reject) => {
                let file = input.files[0];
                let reader = new FileReader();
                reader.readAsText(file);
                reader.onload = () => resolve(reader.result);
                reader.onerror = () => reject(reader.error);
            });
        }
 
        function makeIterator(array){
            var nextIndex = 0;
            
            return {
               next: function(){
                   return nextIndex < array.length ?
                       {value: array[nextIndex++], done: false} :
                       {done: true};
               }
            }
        }
    </script>
</body>
</html>
0
1 / 1 / 0
Регистрация: 15.03.2018
Сообщений: 79
12.01.2020, 00:45  [ТС]
Согласен, это просто замечательно, но есть одно НО

Я же указал, что сайт не мой - онлайн казино и скрипт выполняется в Tampermonkey
0
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
12.01.2020, 13:30
Лучший ответ Сообщение было отмечено Gastiganto как решение

Решение

JavaScript
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://www.cyberforum.ru/javascript-beginners/thread2568523.html
// @grant        none
// ==/UserScript==
 
(function() {
    'use strict';
 
    let html = `
                    <div id="menuTmp">
                        <input type="file" name="datas" id="reader"><br>
                        <button id="readFileBtn">Прочитать файл</button><br>
                    </div>
                    <style>
                        #menuTmp {
                            position: fixed;
                            background: red;
                            top: 0;
                            right: 0;
                        }
                    </style>
        `;
 
        document.body.insertAdjacentHTML('beforeEnd', html);
 
        document.getElementById("readFileBtn").addEventListener("click", async (e) => {
            let text = null;
            try { text = await readFile( document.getElementById("reader") );}
            catch (er) { throw er; }
 
            let arr = text.split("\n");
            let iterator = makeIterator(arr);
            let nextElemBtn = document.createElement("button");
            nextElemBtn.textContent = "NEXT ELEMENT";
            nextElemBtn.addEventListener("click", () => window.alert(iterator.next().value));
            e.target.after(nextElemBtn);
        });
 
        function readFile(input) {
            return new Promise((resolve, reject) => {
                let file = input.files[0];
                let reader = new FileReader();
                reader.readAsText(file);
                reader.onload = () => resolve(reader.result);
                reader.onerror = () => reject(reader.error);
            });
        }
 
        function makeIterator(array) {
            var nextIndex = 0;
 
            return {
               next: function() {
                   return nextIndex < array.length ?
                       {value: array[nextIndex++], done: false} :
                       {done: true};
               }
            }
        }
})();
1
1 / 1 / 0
Регистрация: 15.03.2018
Сообщений: 79
12.01.2020, 15:50  [ТС]
Вот это вообще огонь! То что надо!

Сколько не читал - везде написано, что js не работает с фс

А тут такой вариант

Вообще шикарно. Спасибо!

Добавлено через 9 минут
Может быть Вы мне поможете и со второй проблемой?
В скрипте выполняется только первая функция
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2020, 15:50
Помогаю со студенческими работами здесь

Написать программу чтобы по нажатию кнопки рисовалось 25 кругов разных цветов и размеров
С помощью ellipse нужно, чтобы по нажатию на кнопку рисовалось 25 кругов разных цветов и размеров, не знаю как написать программу

Вывод MessageBox по нажатию кнопки
Как по нажатию кнопки вывести MessageBox?

Вывод таблицы по нажатию кнопки
Здравствуйте! Не нашел раздела для чайников, потому напишу здесь. задача: на странице имеется кнопка, по нажатию которой должен исполнится...

Вывод текста по нажатию кнопки
Вопрос Каким образом по нажатию кнопки выводить текст? Как я хочу чтобы это работало - я кликаю кнопку и открывается новое окошко в...

Вывод надписи по нажатию кнопки
Начал изучать ActionScript. Есть кнопка и textInput. Как сделать, чтобы по нажатию на кнопку выводился текст в инпут. Делаю так, но текст...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru