【问题标题】:Need to convert %amp; to just & in otder for script to work需要转换 %amp;只是为了让脚本正常工作
【发布时间】:2013-03-08 04:08:10
【问题描述】:

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

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

【问题讨论】:

    标签: javascript modx


    【解决方案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

    【讨论】:

      【解决方案2】:

      这样就可以了

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

      【讨论】:

      • '&' 是 html 编码的,这就是它显示 '&' 的原因。可以对不同的符号进行编码,而不仅仅是“&”(例如“opinionatedgeek.com/DotNet/Tools/HTMLEncode/encode.aspx
      • funk247 只要求 &,因此他可以生成 url 参数列表。我的回答就是这样做的。无需对此投反对票。
      • 是的,这正是我想要的,这就是我选择它作为正确答案的原因。
      【解决方案3】:

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

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

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

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

      【讨论】:

      • 在过去的 38 年里一直在做事情,到目前为止,它从来没有给我带来任何问题!为什么要改变一生的习惯我说:D我会记住你的建议以备将来使用。
      猜你喜欢
      • 2019-03-15
      • 2021-07-29
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多