Я работаю над страницей выбора. Я хочу, чтобы текущие данные о подписке пользователя отображались вверху страницы. Мой метод помещает контент в div на основе параметров URL. Если параметр не существует, я хочу, чтобы он упал в другой div. См. Код ниже:
<!DOCTYPE html>
<html>
<head>
<script type = "text/javascript">
var testSub = '<span>Subscription data</span>';
if (/testnews=1/.test(window.location.href)) {
document.getElementById('subscribed').innerHTML = testSub;
} else {
document.getElementById('not_subscribed').innerHTML = testSub;
}
</script>
</head>
<body>
<div id = "subscribed"></div>
<div id = "not_subscribed"></div>
</body>
</html>
Что-то в инструкции if / else у меня не работает. Контент не попадает в div, когда я размещаю его вживую и проверяю URL-адрес с указанным параметром. Если я отброшу предупреждение в операторе if, оно работает нормально, значит, я знаю, что что-то не так в if / else.
В частности, я считаю, что эти две строки неверны: document.getElementById ('subscribed'). InnerHTML = testSub; document.getElementById ('not_subscribed'). innerHTML = testSub;
Вместо использования регулярного выражения для проверки строки запроса URL-адреса я бы рекомендовал сделать это правильно, фактически проверив значения (например, если testnews = 11 или othertestnews = 1, ваш запрос все равно пройдет). Вы можете использовать что-то вроде URIjs для считывания строки запроса в объект.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Наконец разобрался в этом. Просто нужно было обернуть мой код функцией загрузки:
<script type = "text/javascript">
window.onload = function(){
var testSub = '<span>Subscription data</span>';
if (/testnews=1/.test(window.location.href)) {
document.getElementById('subscribed').innerHTML = testSub;
} else {
document.getElementById('not_subscribed').innerHTML = testSub;
}
}
</script>
<body>
<div id = "subscribed"></div>
<div id = "not_subscribed"></div>
</body>
</html>
Не тестировал, но это уже кажется довольно разумным. Вы можете прояснить, в чем вы застряли?