需要转换%&只是& amp;为了使脚本工作

时间:2013-03-07 16:56:36

标签: javascript modx

我正在转换一个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的网站,我想可能有一种方法可以在呈现页面之前转换文本字符串?

希望有人可以指出我正确的方向因为我有点难以理解。

3 个答案:

答案 0 :(得分: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;
}

请参阅unescape html entities in javascript

答案 1 :(得分:0)

这可以解决问题

var str = 'nb/index.php?id=17&amp;page=2'
str = str.replace(/&amp;/g, '&');
setNext(str);

答案 2 :(得分:0)

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

最糟糕的情况是,你可以在PHP中这样做:

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

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