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 回答