Javascript innerHTML和JSON解析了字符串差异

时间:2016-07-14 09:50:28

标签: javascript json smarty decode innerhtml

我在项目中使用JSmart(SMARTY JS端口)。我有两个选项来获取模板:

  1. 将其插入

    < script id =" tpl"类型="文本/ X-jsmart-TMPL"> ... < /脚本>

  2. 并通过

    拉出来
    document.getElementById('tpl').innerHTML
    
    1. 以JSON值
    2. 接收

      我遇到了第二个选项的问题:JSON.Parse之后的项值包含特殊字符,如\ r \ n或\ t \ t,包括/等等.JSmart没有解决这个问题。

      如果从innerHTML拉出,结果字符串处理得很好。

      小例子: JSON解析值:

      <!-- \r\n SMARTY template\r\n\tdata object\r\n
      

      innerHTML拉出值:

      <!-- 
         SMARTY template
            data object
      

      如何将JSON解析后的值转换为与innerHTML相同的字符串?

1 个答案:

答案 0 :(得分:0)

模板文件不是JSON,是一个聪明的模板。但是,您可以从这样的文件/网址中获取它:

$.get("template_url", function(tplText) {
    var tpl = new jSmart( tplText );
    //Compile the tpl with your data object
    var res = tpl.fetch( data );
    //res is your compiled HTML
    //document.write( res );
});

演示: https://jsfiddle.net/iRbouh/3wpfu604/