1

次の例では、「Here is some more text」というコンテンツが明らかに HTML の終了タグの外側にあります。しかし、スクリプトを Web アプリとして実行し、ページ ソースを表示すると、終了タグ内にあります。これは、caja が不正な HTML をサニタイズしているためですか? エラーを通知する代わりに、なぜこのようにサニタイズするのですか?

ガスコード:

function doGet() {
    var ParagraphContent ='So much to do in so little time... '
    var HTMLToOutput = '<html><h1>A header</h1><p>' + ParagraphContent + '</p></html>';
    var HtmlAndMore = HTMLToOutput + 'Here is some more text';
    var it = HtmlService.createHtmlOutput(HtmlAndMore);
    Logger.log(HtmlAndMore)
    return it 
}

GAS スクリプト エディターのログ出力:

<html><h1>A header</h1><p>So much to do in so little time... </p></html>Here is some more text
4

1 に答える 1

1

Caja は、HTML5 解析アルゴリズム (HTML-in-the-wild を解析する方法に関するブラウザー ベンダーのコンセンサスを体系化し、単一の正しい解析エラー回復戦略を定義するように設計されています) に従って動作するように設計されています。そのアルゴリズムは、後に続くコンテンツが に挿入されることを効果的に指定するため、表示される結果は指定されたものになります。</html><body>

ただし、入力が解析エラーであることも指定します (これは、報告されるか、処理中止する可能性があることを意味します)。残念ながら、最新のテクノロジ (「ES5 モード」) では、解析エラーを報告する試みはまだ行われていません。それを修正するためのメモを作成しました。

于 2013-03-29T16:55:55.847 に答える