0

我在 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&amp;page=2');

为了让他们工作,他们需要:

 setNext('nb/index.php?id=17&page=2');

使用 jquery 的网站,我在想可能有一种方法可以在呈现页面之前转换文本字符串?

希望有人能指出我正确的方向,因为我有点难过 atm。

4

3 回答 3

1
setNext(htmlDecode('nb/index.php?id=17&amp;page=2'));

function htmlDecode(input){
  var e = document.createElement('div');
  e.innerHTML = input;
  return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}

在 javascript 中查看unescape html 实体

于 2013-03-07T17:04:06.337 回答
0

这可以解决问题

var str = 'nb/index.php?id=17&amp;page=2'
str = str.replace(/&amp;/g, '&');
setNext(str);
于 2013-03-07T16:59:24.003 回答
0

IMO最好从源头纠正它,而不是在浏览器中“修补”。

最坏的情况,你可以在 PHP 中这样做:

$href = 'nb/index.php?id=17&amp;page=2';
$modx->setPlaceholder('href', str_replace('&amp;', '&', $href));

但是,如果链接是使用 MODX 的makeUrl()方法生成的,那么它应该已经正确格式化。

于 2013-03-07T20:08:10.210 回答