У меня есть переменная javascript, которая содержит URL, заполняемый путем вывода тега script из php. Намерение состоит в том, чтобы при определенных обстоятельствах изменить веб-страницу на этот URL.
var url = "/somepage?q=3®ion=1";
Проблема в том, что URL содержит последовательность «& reg», которую Internet Explorer меняет на «®» без запроса.
Я пытался экранировать весь URL-адрес с помощью htmlspecialchars, что нарушает работу других браузеров. Отключение режима причуд может помочь, но это не вариант с текущей системой. Добавление тега script ничего не сделало.
редактирование:
Я нашел одно решение - «избежать» URL-адреса с помощью конкатенации.
var url = '<?php implode( "&'+'", explode( '&', '/somepage?q=3®ion=1' ) ); ?>';
Я также понял, что, наверное, стоит упомянуть, как я меняю страницу:
document.location.href = url;
редактирование:
Оказывается, у меня была ошибка в моем теге скрипта. Минимальный пример, который показывает ту же «проблему»:
<script type="text/javascript" />
var url = "/test?mode=preview®ion=1";
</script>
Самозакрывающийся начальный тег здесь важен.