3

Google AppsScriptHtmlサービスを使用して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は、キャッシュからプルされたオブジェクトのメンバー変数です。オブジェクトはGoogleスプレッドシートから入力され、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.

上記を解決する方法についてのアイデアをいただければ幸いです。

ありがとう!

4

1 に答える 1

6

エスケープしたくない場合は、<?!=の代わりに使用してください。<?=

于 2012-11-04T16:09:07.643 に答える