Нужно конвертировать%amp; просто и в отдер для сценария работать
Я конвертирую веб-сайт в modx, в котором используется java-оболочка для динамического извлечения контента и его отображения без перезагрузки страницы. Основы сайта есть, но у меня небольшая проблема с сгенерированными ссылками, и я не уверен, что это лучший способ обойти это.
Я не писал оригинальный javascript, который использует сайт, я просто пытаюсь немного его изменить, чтобы modx использовал нужные части.
Вот пример шаблона, который я использую для перехода на следующую / предыдущую страницу.
<div id="next"></div>
<script type="text/javascript">
$(function()
{
setNext('[[+href]]');
var page_content_height = $('#page_content').height();
}
);
</script>
В основном сгенерированные ссылки на modx имеют следующий формат на странице:
setNext('nb/index.php?id=17&page=2');
Чтобы они работали, они должны быть:
setNext('nb/index.php?id=17&page=2');
На сайтах, использующих jquery, я подумал, что может быть способ заставить это преобразовать текстовые строки до того, как он отобразит страницу?
Надеюсь, что кто-то может указать мне правильное направление, потому что я немного озадачен.
3 ответа
Это бы сработало
var str = 'nb/index.php?id=17&page=2'
str = str.replace(/&/g, '&');
setNext(str);
setNext(htmlDecode('nb/index.php?id=17&page=2'));
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
Смотрите unescape html сущностей в javascript
ИМО, было бы лучше исправить это в источнике, чем "исправлять" в браузере.
В худшем случае, вы можете сделать это на PHP следующим образом:
$href = 'nb/index.php?id=17&page=2';
$modx->setPlaceholder('href', str_replace('&', '&', $href));
Однако, если ссылка была создана с использованием MODX makeUrl()
метод, то он должен быть уже правильно отформатирован.