Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите получить переменную
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Помогите получить переменную

Страниц (1): [1]
 

1. LML - 09 Февраля, 2021 - 08:26:46 - перейти к сообщению
Имеется код плеера.
Ник вещающего диджея можно вывести таким образом: <b data-myinfo="djname"></b>. Сам тег, в котором это выводится - значения не имеет.
В data-myinfo хранится вся информация по вещанию (название, треки и др. параметры).
Мне нужно получить переменную имени диджея, чтобы я потом мог подвесить на неё вывод своей аватарки конкретного диджея.
Как это можно сделать?

P.S. Если нужны коды скрипта плеера - могу выложить.

Пытался сам что-то сделать, но JavaScript не знаю вообще...
Спойлер (Отобразить)
получаем - null

CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.   let dj = document.querySelectorAll('djname');
  3.   document.write(dj);
  4. </script>

получаем - [object NodeList]

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. let dj = form.getElementByClassName('djname');
  4.   document.write(dj);
  5. </script>
  6.  
  7. <script>
  8. document.getElementById("djname").innerHTML = "djname";
  9.   document.write("djname");
  10. </script>
  11.  

не выводится ничего...


P.P.S. Под спойлер, почему-то убирается только первый код Недовольство, огорчение
2. dcc0 - 09 Февраля, 2021 - 12:14:17 - перейти к сообщению
LML, Доброго! Часть кода с html можно показать?
Чтобы понять, откуда это:
CODE (javascript):
скопировать код в буфер обмена
  1. getElementByClassName('djname')
  2. getElementById("djname")
3. LML - 13 Февраля, 2021 - 14:15:08 - перейти к сообщению
Вот скрипт, выводящий всю информацию по вещанию:

Спойлер (Отобразить)

Вся инфа находится в массиве data-myinfo
На страницу подключается только скрипт //myradio24.com/player/player.js?v3.17.
4. dcc0 - 13 Февраля, 2021 - 17:32:18 - перейти к сообщению
Такого id в скрипте нет:
CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById("djname")

Класса такого тоже.

Вот в info что-то может быть:
CODE (javascript):
скопировать код в буфер обмена
  1. my_avatars[info.djname]

91 строка.


P.S.
Никогда не использовал атрибут data.
Посмотрел описание:
http://htmlbook[dot]ru/blog/atribut-data
Существует специфика работы с JavaScript.

Если бы у тега был id,
Спойлер (Отобразить)

то выглядел бы доступ к имени так (для примера):
Спойлер (Отобразить)

(Добавление)
UPDATE:

Как я понял, аватар добавляется вот этим кодом:

CODE (html):
скопировать код в буфер обмена
  1. <div data-myinfo="htmlavatar"></div>


Если он вообще есть.
5. dcc0 - 13 Февраля, 2021 - 20:21:41 - перейти к сообщению
Update again: Пошерстил я по сайту myradio24.com, там, как я понял, для каждой станции есть коды и скрипты.

- выводит какую-то информацию.

Аватар, видимо, должен быть здесь:
CODE (html):
скопировать код в буфер обмена
  1. info.htmlavatar
6. LML - 13 Февраля, 2021 - 21:08:35 - перейти к сообщению
Сразу хочу поблагодарить за помощь!

Да. Каждая станция может использовать функционал из предложенного.
Но не весь функционал раскрыт.

Кстати, та часть javascript-кода, что выше выложил, уже убрана из доступа.
Доступ к переменным дан только через PHP-код.
Вариант на РНР я сделал. Но меня это не совсем устраивает, так как это ещё дополнительные запросы, да и для динамической смены аватара - нужно постоянно перезапускать скрипт...

А тут в <b data-myinfo="djname"></b> уже есть динамически сменяемый ник диджея.
Только я не пойму, каким образом он выводится так, что он на странице видим, но его нет, как переменной...

info.htmlavatar - да. Тут аватар. Но он от радиосервера и мне не нужен.
Мне нужно на ник диджея динамически навесить его графический ник из чата...
7. dcc0 - 13 Февраля, 2021 - 21:28:39 - перейти к сообщению

- это объект.
Т.е. доступ к нему, как я выше написал. Сейчас ещё пороюсь, напишу.

А функция my_init_updateinfo - это замыкание.
Неясно, где она вызывавается, но в неё сразу передаётся объект info.
Можно определить самому переменную на своей странице
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var myvar = info.djname
  3.  

И через innerHTML вывести в нужную часть.
8. Vladimir Kheifets - 14 Февраля, 2021 - 10:48:14 - перейти к сообщению
LML пишет:
Имеется код плеера.
Ник вещающего диджея можно вывести таким образом: <b data-myinfo="djname"></b>. Сам тег, в котором это выводится - значения не имеет.
В data-myinfo хранится вся информация по вещанию (название, треки и др. параметры).
Мне нужно получить переменную имени диджея, чтобы я потом мог подвесить на неё вывод своей аватарки конкретного диджея.
Как это можно сделать?

Добрый день!
Попробуйте сделать так:
Спойлер (Отобразить)
Результат можете увидеть в консле браузера (ctrl+shift+i)
Спойлер (Отобразить)

Если больше нравится как было у Вас, то замените в коде console.log на document.write
Удачи!

 

Powered by ExBB FM 1.0 RC1