在grails视图中有一个参数,传递给javascript代码。
<g:if test="${replacedString}">
${replacedString}
<g:set var="replacedString" value="${replacedString}"/>
</g:if>
<script>
var mydata = decodeURIComponent(${replacedString});
console.log(mydata);
</script>replacedString值正以编码字符串的形式传递,即:“显示为"。
decodeURIComponent这是我想要解码的字符串:
[{"description":"test1 ","filenameAndPath":"test1.pdf"},{"description":"test file","filenameAndPath":"test copy.pdf"},{"description":"","filenameAndPath":""},{"description":"","filenameAndPath":""}]这段代码一直抛出错误Syntax error: Unexpected token &。
我漏掉了什么明显的东西吗?
发布于 2016-11-15 20:46:00
这是HTML编码的。
使用来自here的技巧:-
var encoded = "[{"description":"test1 ","filenameAndPath":"test1.pdf"},{"description":"test file","filenameAndPath":"test copy.pdf"},{"description":"","filenameAndPath":""},{"description":"","filenameAndPath":""}]"
var elem = document.createElement('textarea');
elem.innerHTML = encoded;
var decoded = elem.value;
console.log(decoded);
有关HTML编码的差异,请参见here
https://stackoverflow.com/questions/40619151
复制相似问题