使用Google Apps脚本HTMLService进行双重HTML编码

时间:2012-11-04 12:31:53

标签: google-apps-script

我正在使用Google Apps脚本Html服务来呈现HTML页面。

问题是HTML实体会显示而不是预期的特殊字符。例如:

Miss McCleod's renders to Miss McCleod's  
view source is: "text-align: center\"> Miss McCleod's 

渲染与

一起正常工作
<code> <?=tune.tuneName?> </code>

但不是:

<h1 style="text-align:center;"><?=tune.tuneName?> </h1> 

其中tune.tuneName是从Cache中提取的对象的成员变量。该对象是从谷歌电子表格中填充的,并且在放入和/或从缓存中使用时,使用了Utilities.jsonStringify()和Utilities.jsonParse()。

HTML模板脚本如下所示。

   

<h1 style="text-align:center;"><?=tune.tuneName?> </h1> 
<code> <?=tune.tuneName?> </code>

<div style="text-align:center;">    
  <? var imageUrl = getUrlForAttachmentFileName(tune.musicNotesImageFileName) ?>
  <img src="<?=imageUrl?>" alt="<?=tune.tuneName?>" align="center">
</div>


以下代码用于实例化页面。

tuneRec = findTuneById(tuneId);  
var printHtmlTemplate = HtmlService.createTemplateFromFile('PrintPage');
printHtmlTemplate.tune = tuneRec;
return printHtmlTemplate.evaluate();



Miss McCleod&amp;#39;s implies that double encoding is taking place.

非常感谢任何关于如何解决上述问题的想法。

谢谢!

1 个答案:

答案 0 :(得分:6)

如果您不想转义,请使用<?!=代替<?=