Задать вопрос
@pavelzabavin

Как вывести текст из одной строки в формате «артист — песня» с помощью JS без багов?

Товарищи, приветствую!

Скажу сразу, что не являюсь гуру в JS, однако, прошу мне подсказать, как двигаться дальше. Сделал своими силами, что смог, но где-то накосячил...

Итак, есть php-скрипт, который извлекает информацию из xml-файла в одну строку. Получаем что-то вроде Calvin Harris, Dua Lipa - One Kiss или David Guetta, Sia - Flames

Далее с помощью JS эта информация подгружается в html-файл, который имеет структуру:
<div class="meta-info">
  <div class="label">Сейчас в эфире:</div>
    <div id="artist">&nbsp; </div>
    <div id="song">&nbsp; </div>
  </div>


Фрагмент JS выглядит следующим образом:

xmlhttp.onreadystatechange = function() {
	4 === xmlhttp.readyState && 200 === xmlhttp.status && (artist_info.innerText = xmlhttp.responseText.split("-")[0], song_info.innerText = xmlhttp.responseText.split("-")[1], console.log(xmlhttp.responseText.split("-")))
}, xmlhttp.open("GET", "/pn2.php"), xmlhttp.send(), setInterval(function() {
	xmlhttp.open("GET", "/pn2.php"), xmlhttp.send()
}


Заметил, что когда звучит песня, например, G-Easy, Halsey - Him & I, на странице происходит анархия вот в таком виде: 5f7f853b78e78095924823.png

Соответственно, возникает вопрос, как необходимо подправить код, чтобы название песни G-Easy, Halsey - Him & I отображалось корректно? Понимаю, что код видит в названии - и решает разорвать название, но для пользователя получается неправильно...

Буду крайне признателен!
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
nowm
@nowm
Можно вместо split("-") сделать split(" - "), но, вообще, лучше использовать JSON, чтобы название трека и артист были в отдельных полях. Это будет надёжнее работать, потому что входные данные могут быть непредсказуемыми. Например, название артиста будет содержать «–» с пробелами, и всё опять сломается.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если на сервере можно получить нужные поля отдельно, то отправляйте с сервера нормальный объект в JSON и не извращайтесь с резкой строк.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы