Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
Что-то у меня не работает скрипт.

какой?

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 16:37 25-07-2025
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
 

Всего записей: 572 | Зарегистр. 11-08-2007 | Отправлено: 19:28 25-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik
этот плагин работает с js кодом, а не js + html + css в таком виде.

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 19:29 25-07-2025 | Исправлено: Mavrikii, 19:34 25-07-2025
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii

Цитата:
этот плагин работает с js кодом, а не js + html + css в таком виде.

А какой принцип? Просто у меня вопрос был Ссылка подключить скрипт в браузере. Получается готовый вариант я проверить не могу, мне только нужно самому создавать страницу и как-то туда внедрять этот скрипт из вашего примера .

Всего записей: 572 | Зарегистр. 11-08-2007 | Отправлено: 19:43 25-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
подключить скрипт в браузере.  

скрипт, а я написал не просто скрипт, а еще и html код и css код.
они просто вставкой не работают, их можно вставлять или создавать с помощью javascript, тогда будет работать в этом аддоне.
он работает только с js.
 
и основной его смысл именно добавлять что то к существующим страницам, сайтам.
 
если вам нужно просто для теста - создаете страницу на диске вручную, открываете ее браузером.
или пользуетесь ресурсами по типу https://jsfiddle.net/ или https://codepen.io/pen/

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 20:20 25-07-2025 | Исправлено: Mavrikii, 20:21 25-07-2025
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
Вот, в jsfiddle такие ошибки.
☁️ "Running fiddle"
"[Line 25] Uncaught SyntaxError: Unexpected token '<'"
&#9729;&#65039; "Running fiddle"
"[Line 23] Uncaught SyntaxError: Unexpected token '<'"
&#9729;&#65039; "Running fiddle"
"[Line 20] Uncaught SyntaxError: Unexpected token '<'"
В браузере получилось. Уточните, пожалуйста, у вас в скрипте выборка текста по клику какой функцией реализована?

Всего записей: 572 | Зарегистр. 11-08-2007 | Отправлено: 21:12 25-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vlimiik

Цитата:
Вот, в jsfiddle такие ошибки.

html код в одной части окна, js в другой, css в третьей.
 

Цитата:
Уточните, пожалуйста, у вас в скрипте выборка текста по клику какой функцией реализована?

очевидно же, цепляется обработчик события click

Код:
elm.addEventListener("click", (event) => {
});

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 21:25 25-07-2025 | Исправлено: Mavrikii, 21:25 25-07-2025
Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Mavrikii
Просто я не хочу проверять все функции, искать их описания, поэтому прошу подсказку.
document.querySelectorAll('.list-class') это указывает на class с текстом, но текст разный, а class одинаковый, поэтому и вопрос как именно выборка происходит?
C JSFiddle похоже разобрался, там тэги лишние были.
 
Добавлено:
Всё, дошло, InnerHTML...

Всего записей: 572 | Зарегистр. 11-08-2007 | Отправлено: 23:04 25-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще вопрос появился.  
Есть функция, которая читает  txt файл и через XMLHttpRequest выводит в определенное место на странице. Т.к. входные файлы имеют разное название и параметры вывода, то для каждого файла надо создавать свою функцию.  
 
1. Можно множество входных файлов и document.querySelector реализовать с помощью одной функции вместе с updateTitleDisplay() ?
2. Как привязать гиперссылку к нужной функции для чтения txt файла, чтобы при нажатии на нее выводить текст из своей функции ? Сейчас гиперссылка и функция txt два несвязанных объекта. На некоторых ссылках отсутствует входной файл (нет данных для вывода) и поэтому функция для него не создается.
3. Функции чтения файлов работают постоянно, возможно ее задействовать только тогда, когда выбрана нужная гиперссылка?
 

Код:
 
<script>
function updateTitleDisplayST1() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if ((xmlhttp.readyState === 4) && (xmlhttp.status === 200)) {
            var s = xmlhttp.responseText;
            s = s.split('\n');
            document.querySelector('#np_current_track_ST1').innerHTML = s[0];
        }
    };
    xmlhttp.open("GET", "/meta/st1.txt?"  + new Date().getTime(), true);
    xmlhttp.send();
}
 
document.addEventListener('DOMContentLoaded', function () {
    setInterval(updateTitleDisplay, 5 * 1000);
    updateTitleDisplay();
});
</script>
 
<body>
<audio id="audioPlayer" controls="controls">
<source id="audioSource" src=""></source>
</audio>
<td align="center"><div id='out'></div></td>
// вот сюда надо сделать вывод функции updateTitleDisplayST1 при выборе ссылки.
<span id="np_current_track_NAME(x)"></span>
 
<div class="list-class" data-value="http://....">
<a href="#"Stream1></a>
</div>  
 
<body>
 

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 08:00 26-07-2025 | Исправлено: digital422, 15:56 27-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
для чего вам делать AJAX запросы вообще?

Цитата:
<td align="center"><div id='out'></div></td>
 

забыли указать основной тег, родительский.
 

Цитата:
Функции чтения файлов работают постоянно, возможно ее задействовать только тогда, когда выбрана нужная гиперссылка?

возможно, но будет задержка с обработкой данных связанных со ссылкой, так как для запроса нужно время.
 

Цитата:
1. Можно множество входных файлов и document.querySelector реализовать с помощью одной функции вместе с updateTitleDisplay() ?

можно. по клику брать доступные данные, делать AJAX запрос (если хочется, я же не знаю какую информацию и для чего хотите получать), а также все остальное.
 

Цитата:
1. Можно множество входных файлов и document.querySelector реализовать с помощью одной функции вместе с updateTitleDisplay() ?
 

да, можно, как написал выше. но если данных много, они динамческие, то удобнее получать сразу все одним запросом, может периодически (через setInterval)

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 11:35 26-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
для чего вам делать AJAX запросы вообще?  

Брать данные из txt файла и размещать их в определенном месте в таблице.
 
Задам вопрос проще-как в div поместить элемент "#np_current_track_ST1" в "xmlhttpreq1", который был создан через XMLHttpRequest? Если получится его туда вставить, то его можно будет вывести через elm.getAttribute и будет привязка, что и требовалось.

Код:
 
<div class="list-class" data-value="http://....">Stream1 xmlhttpreq1=/*здесь должен быть - np_current_track_ST1*/>
<a href="#">ST1</a>
</div>
 
<script>
.......
document.getElementById("out").innerHTML = elm.getAttribute('xmlhttpreq1');
.......
</script>
 

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 15:55 27-07-2025 | Исправлено: digital422, 16:13 27-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422

Цитата:
Задам вопрос проще-как в div поместить элемент "#np_current_track_ST1" в "xmlhttpreq1", который был создан через XMLHttpRequest? Если получится его туда вставить, то его можно будет вывести через elm.getAttribute и будет привязка, что и требовалось

не понимаю. мне сдается, что сами не понимаете, что хотите сделать.
при чем тут атрибут и AJAX запрос?
если вам нужно какие то данные в теге хранить - можно создавать сколько угодно атрибутов, что начинаются с data-имя_атрибута
 
если нужно вставить данные полученные AJAX запросом, то в его обработке берете данные и вставлете в idv, но не как атрибут, потому что он не будет отображаться на странице. или нужно как атрибут, чтобы потом использовать и вывести?

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 16:21 27-07-2025 | Исправлено: Mavrikii, 16:31 27-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне надо при выборе определенной ссылки вставлять сформированный AJAX запрос, соответствующий этой ссылки. У стрима есть метаданные, эти метаданные сформированы в txt файле. AJAX делает запрос к  txt файлу и при нажатии мышкой или по кнопке вывести этот запрос, который соответствует конкретному стриму. Пробовал выводить обычный текст из div как атрибут-работает, думал по аналогии сделать с результатом AJAX запроса.

Цитата:
или нужно как атрибут, чтобы потом использовать и вывести?  

Да, получается AJAX надо сделать атрибутом и потом выводить.

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 17:06 27-07-2025 | Исправлено: digital422, 17:16 27-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422

Цитата:
Да, получается AJAX надо сделать атрибутом и потом выводить.
 

зачем? что мешает вывести сразу после получения ответа?
по клику, запускаете проигрывание, делаете ajax запрос, при получении данных - вставляете их текстом куда нужно (не атрибутом).

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 19:51 27-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
по клику, запускаете проигрывание, делаете ajax запрос, при получении данных - вставляете их текстом куда нужно (не атрибутом).  

Вариант для одного потока, он работает. А когда их несколько-данные надо выводить только для выбранного потока, вот здесь возникли затруднения. ajax запрос формируется независимо от выбора, через 5 сек, т.к. данные в txt файлах меняются, причем в разное время.

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 20:53 27-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422

Цитата:
А когда их несколько-данные надо выводить только для выбранного потока, вот здесь возникли затруднения. ajax запрос формируется независимо от выбора, через 5 сек, т.к. данные в txt файлах меняются, причем в разное время

ну так привязываете его к тому элементу, на который кликнули, другие не трогаете.
вам информацию о всех потоках нужно обновлять одновременно или только о том, на который кликнули?

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 21:00 27-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
привязываете его к тому элементу, на который кликнули

Вот это и был вопрос - каким образом это сделать? По правильному надо обновлять данные только на том потоке, который выбран, чтобы не создавать лишний трафик, это вторая задача. Сейчас обновляются все данные (конфигурацию приводил выше в сообщении).

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 21:29 27-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422

Цитата:
Вот это и был вопрос - каким образом это сделать?

по клику, делаете ajax запрос с каким то идентификатором данного потока (чтобы отличать от других).
серверный скрипт получает этот идентификатор, возвращает данные только этого потока, после чего они вставляются куда хочется. далее по таймеру регулярно идет аналогичный запрос.
если кликается новый поток, все повторяется, но сначала очищается старый таймер.

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 21:43 27-07-2025
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что получилось, только не работает обновление данных, запрос после нажатия на кнопку не отправляется. И не понятно теперь, как это перенести на кнопку вместо гиперссылки с классами.

Код:
 
<p id="elm">ID..</p>
 
<button type="button" id="ButtonSt1">Station1</button>
<button type="button" id="ButtonSt2">Station1</button>
 
document.getElementById("ButtonSt1").addEventListener("click", function() {
  var buttonId = this.id;
 
  var xhr = new XMLHttpRequest();
  xhr.open("GET", "/meta/st1.txt?"  + new Date().getTime(), true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
      console.log(xhr.responseText);
      document.getElementById("elm").innerHTML = this.responseText;
    }
  };
  xhr.send("button_id=" + buttonId);
},5000);
 

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 15:25 28-07-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
фигня написана.
более того, файлы же разные, наверно, для разных потоков. или нужно из одного потом выцеплять данные для конкретного потока? отправку идентификатора если вы серверным скриптом обрабатываете данные и выбираете для конкретного потока, а не возвращаете просто содержимое .txt файла.
 

Код:
 
 
<button type="button" class='lost-class'>Station1: <span></span></button>
<button type="button" class='lost-class'>Station2: <span></span></button>
 
<script>
const elements = document.querySelectorAll('.list-class');
let timer = null;
elements.forEach(elm => {
   elm.addEventListener("click", event => {
       if (timer)
          clearInterval(timer);
       timer = setInterval(() => {
           let xhr = new XMLHttpRequest();
           xhr.open("GET", "/meta/st1.txt?"  + new Date().getTime(), true);
           xhr.onreadystatechange = function() {
           if (xhr.readyState === 4 && xhr.status === 200) {
               console.log(xhr.responseText);
               elm.querySelector('span').innerHTML = this.responseText;
           }
           xhr.send();
       }, 5000);
   });
});
</script>

не проверял

Всего записей: 16423 | Зарегистр. 20-09-2014 | Отправлено: 16:22 28-07-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru