我正在尝试准备GAS代码示例以嵌入Google协作平台和其他网站。我使用HtmlService.createHtmlOutput和HtmlService.createTemplateFromFile()和template.evaluate()。getContent()来提供谷歌应用程序脚本内容的html版本。根据{{3}},一切正常。
现在我想使用prettyify.js来修饰代码。我使用版本this post,它几乎可以工作。但是,被修饰的代码中的特定方法名称会从htmlservice中抛出错误。
不支持guest虚拟机构造对象对象的调用。期待一个 函数不是字符串:pln
具体来说,这个文本成功地被美化了,
function xisItHtml (e) {
return ( e.parameter.hasOwnPropertu('template')) ;
}
而这会引发错误
function xisItHtml (e) {
return ( e.parameter.hasOwnProperty('template')) ;
}
似乎特定的方法(奇怪,因为这些代码都没有执行,只是被美化),导致caja卫生设施抱怨。
模板中的代码就是这个
$(document).ready(function () {
// any jQueryness can happen here...
try {
prettyPrint();
}
catch(err) {
alert("failed prettification " + err);
}
});
我很难过。任何想法?
答案 0 :(得分:1)
因此,当您将包含.toString()或.hasOwnProperty()的经过修饰的文本插入到GAS中的htmloutput时,似乎会出现故障。我找不到任何导致问题的其他文字,但可能会有更多。我的黑客只是在美化之前改变文本并稍后再改变它。
$(document).ready(function () {
// any jQueryness can happen here...
var thingsThatScrewUp = [ 'toString', 'hasOwnProperty'],t;
$('.pretty').each( function(i,elem) {
var c = $(elem).text() ;
// disguise
for (var i = 0 ; i < thingsThatScrewUp.length ; i++ ) {
c = c.replace(new RegExp("." + thingsThatScrewUp[i], 'g'),".sandw_" + i + "_ch");
}
try {
t = prettyPrintOne(c);
}
catch (err) {
$('#report').html(err + c);
}
// undisguise
for (var i = 0 ; i < thingsThatScrewUp.length ; i++ ) {
t = t.replace(new RegExp("sandw_" + i + "_ch", 'g'),thingsThatScrewUp[i]);
}
$(elem).html("<pre class='code pretty prettyprint'>" + t + "</pre>");
});
$('#working').html('Module:');
});
答案 1 :(得分:0)
这可能是你调用prettyifier的方式。这是an example which appears to render correctly in the Caja Playground